Chciałbym opublikować pakiet npm zawierający moje pliki źródłowe i dystrybucyjne. Moje repozytorium Github zawiera src
folder zawierający pliki źródłowe JavaScript. Proces kompilacji generuje dist
folder zawierający pliki dystrybucyjne. Oczywiście dist
folder nie jest wpisywany do repozytorium Github.
Jak opublikować pakiet npm w taki sposób, że gdy ktoś to zrobi npm install
, dostanie src
również dist
folder? Obecnie, gdy uruchamiam npm publish
z mojego repozytorium git, src
publikowany jest tylko folder.
Mój plik package.json wygląda następująco:
{
"name": "join-js",
"version": "0.0.1",
"homepage": "https://github.com/archfirst/joinjs",
"repository": {
"type": "git",
"url": "https://github.com/archfirst/joinjs.git"
},
"main": "dist/index.js",
"scripts": {
"test": "gulp",
"build": "gulp build",
"prepublish": "npm run build"
},
"dependencies": {
...
},
"devDependencies": {
...
}
}
.gitignore
czy.npmignore
(wydaje się, że nie, gdy czytam dokument) - @Naresh, powiedz nam, który sposób działał dobrze.Kiedy ty
npm publish
, jeśli nie masz.npmignore
pliku, npm użyje twojego.gitignore
pliku (w twoim przypadku wykluczyłeśdist
folder).Aby rozwiązać problem, utwórz
.npmignore
plik na podstawie swojego.gitignore
pliku, bez ignorowania folderu dist .Soure: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
źródło
Minimalny przykład użycia plików danych ze skryptu
Innym częstym przypadkiem użycia jest posiadanie plików danych, których muszą używać twoje skrypty.
Można to łatwo zrobić za pomocą technik wymienionych w: W node.JS jak mogę uzyskać ścieżkę do modułu, który załadowałem za pomocą wymagania, które jest * nie * moje (tj. W jakimś module node_module)
Pełny przykład można znaleźć pod adresem:
W tej konfiguracji plik
mydata.txt
jest umieszczanynode_modules/cirosantilli-data-files/mydata.txt
po instalacji, ponieważ dodaliśmy go do naszegofiles:
wpisupackage.json
.Nasza funkcja
myfunc
może następnie znaleźć ten plik i użyć jego zawartości przy użyciurequire.resolve
. Oczywiście działa również na pliku wykonywalnym./cirosantilli-data-files
.package.json
mydata.txt
index.js
cirosantilli-data-files
is-installed-globally
Pakiet jest następnie przydatna, jeśli chcesz wygenerować ścieżki względne do plików rozproszonych w zależności czy są one zainstalowane lokalnie lub globalnie: Jak sprawdzić, czy pakiet został zainstalowany npm globalnie lub lokalnieźródło