我'd模塊。它進展良好,但後來當我從註冊表中安裝它,結果證明缺少某些文件。npm發佈不包括我所有的文件
當我在模塊的項目目錄中運行irish-pub時,輸出沒有列出這些文件名。
我檢查:
- 我沒有一個
.npmignore
文件。 - 我有一個
.gitignore
但這僅包含/node_modules/
- 丟失的文件正常JS文件,而不是東西,可能是ignored by default
還有什麼可以阻止他們?
我'd模塊。它進展良好,但後來當我從註冊表中安裝它,結果證明缺少某些文件。npm發佈不包括我所有的文件
當我在模塊的項目目錄中運行irish-pub時,輸出沒有列出這些文件名。
我檢查:
.npmignore
文件。.gitignore
但這僅包含/node_modules/
還有什麼可以阻止他們?
問題是我在package.json中有一個files
數組。如果存在這種情況,那麼只有指定的文件纔會發佈,其他所有內容都是有效的npmignored。
我剛碰到同樣的問題,找到答案here。
您需要包含您嘗試發佈的目錄(或tarball)的路徑。而在npmjs.org的文件並沒有真正顯示它,如果你運行npm help publish
你會得到男人頁面,這表明了正確的用法其實是
npm publish <tarball> [--tag <tag>] npm publish <folder> [--tag <tag>]
我還發現,我不得不實際上輸入了路徑:我不能僅使用包含我的package.json
文件的目錄中的npm publish .
。
希望有所幫助。
我有過的「文件」屬性中的package.json以及(intentionaly),但所用的相對pathes的文件和目錄列表以點開頭的斜槓(「./」),但那npm pack
和npm publish
都沒有。刪除這些,都按預期工作!
所以更改:
"files": [ "./bin", "./lib" ]
到:
"files": [ "bin", "lib" ]
並運行:
$ npm pack
檢查GNU壓縮tar文件和finaly:
$ npm publish <projectname>-<semver>.tgz
我從未必須指定路徑。我只需在目錄中鍵入'npm publish'併發布。 – callum 2015-05-17 14:15:47