Ich möchte ein npm-Paket veröffentlichen, das meine Quell- und Verteilungsdateien enthält. Mein Github-Repository enthält einen src
Ordner, der JavaScript-Quelldateien enthält. Der Erstellungsprozess generiert einen dist
Ordner, der die Verteilungsdateien enthält. Natürlich wird der dist
Ordner nicht in das Github-Repository eingecheckt.
Wie veröffentliche ich ein npm-Paket so, dass jemand, der dies tut npm install
, sowohl einen Ordner src
als auch einen dist
Ordner erhält ? Wenn ich derzeit npm publish
von meinem Git-Repository aus starte, wird nur ein src
Ordner veröffentlicht.
Meine package.json sieht folgendermaßen aus:
{
"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
oder.npmignore
(anscheinend beim Lesen des Dokuments nicht) - @Naresh, bitte sagen Sie uns, welcher Weg gut funktioniert hat.Wenn Sie
npm publish
keine.npmignore
Datei haben, verwendet npm Ihre.gitignore
Datei (in Ihrem Fall haben Sie die ausgeschlossendist
Ordner ).Um Ihr Problem zu lösen, erstellen Sie eine
.npmignore
Datei basierend auf Ihrer.gitignore
Datei, ohne den dist-Ordner zu ignorieren .Quelle: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
quelle
Minimales Beispiel für die Verwendung von Datendateien aus einem Skript
Ein weiterer häufiger Anwendungsfall sind Datendateien, die Ihre Skripte verwenden müssen.
Dies kann einfach mithilfe der unter: In node.JS genannten Techniken erfolgen. Wie kann ich den Pfad eines Moduls ermitteln, über das ich geladen habe? Dies ist * nicht * mein (dh in einigen node_module).
Das vollständige Beispiel finden Sie unter:
Bei diesem Setup wird die Datei nach der Installation
mydata.txt
abgelegt,node_modules/cirosantilli-data-files/mydata.txt
da wir sie unseremfiles:
Eintrag von hinzugefügt habenpackage.json
.Unsere Funktion
myfunc
kann diese Datei dann finden und ihren Inhalt mithilfe von verwendenrequire.resolve
. Es funktioniert./cirosantilli-data-files
natürlich auch nur auf der ausführbaren Datei .package.json
mydata.txt
index.js
Cirosantilli-Datendateien
Das
is-installed-globally
Paket ist dann nützlich, wenn Sie relative Pfade zu den verteilten Dateien generieren möchten, je nachdem, ob sie lokal oder global installiert sind: So stellen Sie fest, ob das npm-Paket global oder lokal installiert wurdequelle