2014-11-20 1 views
8

I npm publish 'd ein Modul. Es ging gut, aber dann, als ich es aus der Registrierung installiert, stellte sich heraus, dass bestimmte Dateien fehlten.npm veröffentlichen enthält nicht alle meine Dateien

Wenn ich irish-pub in meinem Projektverzeichnis des Moduls ausführen, wird die Ausgabe diese Dateinamen nicht wirklich auflisten.

Ich habe überprüft:

  • Ich habe keine .npmignore-Datei haben.
  • ich eine .gitignore haben, aber dies enthält nur /node_modules/
  • die fehlenden Dateien normale JS-Dateien, nicht Dinge, die sein könnte ignored by default

Was sonst blockiert sie werden könnte?

Antwort

1

Ich lief gerade in das gleiche Problem und fand die Antwort here.

Sie müssen den Pfad zu dem Verzeichnis (oder Tarball) angeben, das Sie veröffentlichen möchten. Während die Dokumentation auf npmjs.org anzeigt es nicht wirklich, wenn Sie npm help publish führen Sie die man-Seite bekommen, was zeigt, dass die korrekte Verwendung

npm publish <tarball> [--tag <tag>] npm publish <folder> [--tag <tag>]

Ich fand auch tatsächlich

ist, dass ich musste den Pfad tatsächlich eingeben: Ich konnte nicht einfach npm publish . aus dem Verzeichnis verwenden, das meine package.json Datei enthält.

Hoffe, dass hilft.

+0

Ich musste noch nie einen Pfad angeben. Ich tippe einfach 'npm publish' aus dem Verzeichnis und es veröffentlicht. – callum

1

ich habe auch die „Dateien“ Eigenschaft in package.json hat (intentionaly), aber verwendet, um relative Pfade in der Liste der Dateien und Verzeichnisse mit Punktstrich („./“) beginnen, aber weder npm pack noch npm publish hat damit gearbeitet. entfernt diese, alles funktioniert wie erwartet!

so ändern:

"files": [ "./bin", "./lib" ] 

zu:

"files": [ "bin", "lib" ] 

und laufen:

$ npm pack 

Kontrolle der Gnu Reißverschluss tarfile und finaly:

$ npm publish <projectname>-<semver>.tgz