繁体   English   中英

我无法在全球安装我的npm软件包

[英]I can't install my npm package globally

我想创建可以全局安装的npm软件包。 我可以发布该程序包,也可以发布新版本,但是当我想在全球范围内安装它时,它将无法正常工作。

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

调试日志:

7877 info linkStuff pentest-tool-lite@0.0.3
7878 silly linkStuff pentest-tool-lite@0.0.3 has /Users/juffalow/.nvm/versions/node/v8.7.0/lib/node_modules as its parent node_modules
7879 silly linkStuff pentest-tool-lite@0.0.3 is part of a global install
7880 silly linkStuff pentest-tool-lite@0.0.3 is installed into a global node_modules
7881 silly linkStuff pentest-tool-lite@0.0.3 is installed into the top-level global node_modules
7882 verbose linkBins pentest-tool-lite@0.0.3
7883 verbose linkBins [ { 'pentest-tool-lite': './lib/index' },
7883 verbose linkBins   '/Users/juffalow/.nvm/versions/node/v8.7.0/bin',
7883 verbose linkBins   true ]
7884 verbose linkMans pentest-tool-lite@0.0.3
7885 verbose unlock done using /Users/juffalow/.npm/_locks/staging-fa43d53d0ab27b11.lock for /Users/juffalow/.nvm/versions/node/v8.7.0/lib/node_modules/.staging
7886 verbose stack Error: ENOENT: no such file or directory, chmod '/Users/juffalow/.nvm/versions/node/v8.7.0/lib/node_modules/pentest-tool-lite/lib/index'
7887 verbose cwd /Users/juffalow/NetBeansProjects/pentest-tool-lite
7888 verbose Darwin 16.0.0
7889 verbose argv "/Users/juffalow/.nvm/versions/node/v8.7.0/bin/node" "/Users/juffalow/.nvm/versions/node/v8.7.0/bin/npm" "install" "-g" "pentest-tool-lite"
7890 verbose node v8.7.0
7891 verbose npm  v5.4.2
7892 error path /Users/juffalow/.nvm/versions/node/v8.7.0/lib/node_modules/pentest-tool-lite/lib/index
7893 error code ENOENT
7894 error errno -2
7895 error syscall chmod
7896 error enoent ENOENT: no such file or directory, chmod '/Users/juffalow/.nvm/versions/node/v8.7.0/lib/node_modules/pentest-tool-lite/lib/index'
7897 error enoent This is related to npm not being able to find a file.
7898 verbose exit [ -2, true ]

Yarn似乎成功安装了它,但是没有成功。 NPM显示错误,但我真的不知道为什么? 您有模块方面的经验吗?

好的,我发现了问题。 要将全局模块发布到npm时,必须发布构建版本(例如bin或lib文件夹)。 我有这个版本,但是在.gitignore忽略了,因为它不需要在回购中。 当您没有.npmignore npm使用.gitignore文件,因此该模块发布时没有构建版本,因此也没有可执行文件。

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

node_modules/
coverage/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM