我不能全局安装我的npm包

时间:2017-12-03 16:06:44

标签: node.js npm yarnpkg npm-publish

我想创建可以全局安装的npm包。我可以发布包,发布新版本,但是当我想在全局安装它时,它无效。

RemoteData输出:

yarn global add <package>

success Installed "pentest-tool-lite@0.0.3" with binaries: - pentest-tool-lite 输出:

npm install -g <package>

调试日志:

npm ERR! path /nvm/versions/node/v8.7.0/lib/node_modules/pentest-tool-lite/lib/index
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall chmod
npm ERR! enoent ENOENT: no such file or directory, chmod 'nvm/versions/node/v8.7.0/lib/node_modules/pentest-tool-lite/lib/index'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR! _logs/2017-12-03T16_00_34_926Z-debug.log

纱线似乎成功安装,但不是。 NPM显示错误,但我真的不知道为什么?您对module有什么经验吗?

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。如果要将全局模块发布到npm,则必须发布构建版本(例如bin或lib文件夹)。我有这个版本但在.gitignore中被忽略了,因为它不需要处于回购状态。当你没有.npmignore npm使用.gitignore文件时,所以模块是在没有构建版本的情况下发布的,因此没有可执行文件。

解决方案:使用以下命令将.npmignore文件添加到项目的根目录:

node_modules/
coverage/