鱼壳和全球npm模块
我在本地环境中遇到一些问题 我正在使用:鱼壳和全球npm模块,npm,fish,Npm,Fish,我在本地环境中遇到一些问题 我正在使用: ~> npm config get prefix /Users/me/.npm-packages ~> npm bin /Users/me/node_modules/.bin 自制(1.1.4) 鱼壳(2.4) n版本管理器(2.1.0) 节点 npm 上述所有软件最初都是通过自制软件安装的 问题: ~> npm config get prefix /Users/me/.npm-packages ~> npm bin /
~> npm config get prefix
/Users/me/.npm-packages
~> npm bin
/Users/me/node_modules/.bin
- 自制(1.1.4)
- 鱼壳(2.4)
- n版本管理器(2.1.0)
- 节点
- npm
~> npm config get prefix
/Users/me/.npm-packages
~> npm bin
/Users/me/node_modules/.bin
- 无法运行任何全局安装的模块
- 我无法更新npm版本
~> npm config get prefix
/Users/me/.npm-packages
~> npm bin
/Users/me/node_modules/.bin
当我尝试更新npm时会发生什么情况:
~> npm install -g npm@3
/Users/me/.npm-packages/bin/npm -> /Users/me/.npm-packages/lib/node_modules/npm/bin/npm-cli.js
npm@3.10.10 /Users/me/.npm-packages/lib/node_modules/npm
~> npm -v
2.15.9
当我尝试调用全局模块时:
~> gulp
fish: Unknown command 'gulp'
我为修复全局模块所做的尝试:
~> cat ~/.config/fish/config.fish
set fish_user_paths /Users/me/.npm-packages
ls ~/.config/fish/functions
bower.fish ember.fish pm2.fish
~> cat ~/.config/fish/functions/bower.fish
function bower
/Users/me/.npm-packages/bin/bower $argv;
end
我们将非常感谢您提供的任何帮助!我一直在试图解决这个问题,现在没有任何运气 我通过完全卸载(并删除任何痕迹)
node
、npm
和n
,卸载fish
shell并改为zsh
解决了这个问题
之后,我安装了nvm
,并使用它在我的机器上恢复节点
全局npm模块现在可以工作。全局安装节点应用程序时会发生什么
在OSX 10.12.5中配置
鱼类v2.6.0
节点v8.1.0
终端中的示例命令同时返回
term~> npm install jshint -g
/Users/username/npm-global/lib/node_modules/bin/jshint ->
/Users/username/npm-global/lib/node_modules/jshint/bin/jshint
您应该在shell中拥有的路径,使您能够执行指向实际安装位置的jshint(installed package)->
包括下面的行,用于在文件~/.profile中配置路径
export PATH="$HOME/npm-global/lib/node-modules/:$PATH"
您可以使用已安装的npm模块。您只需要将npm全局路径添加到shell中。为此,我跑:
$ npm config get prefix
// Output: /usr/local/Cellar/node/9.2.1
然后,添加到我的fish/config.fish
:
set PATH /usr/local/Cellar/node/9.2.1/bin $PATH
这是帮助我解决问题的唯一方法。我的永久解决方案(使用macOS Mojave和fish 2.7.1):
顺便说一句,下面的一个工作,但只在终端会话:
set PATH $PATH /Users/{USERNAME}/.npm-packages/bin
注意:您可以通过以下方式找到npm包路径:
printf "%s\n" $PATH
这看起来像是/Users/me/.npm packages/bin/
不在路径中的简单情况。echo$PATH
是否包含/Users/me/.npm-packages/bin/
?谢谢回复。我刚刚检查过,它似乎在那里:echo$PATH
是否显示冒号?(不应该,看起来应该用空格分隔)如果没有冒号,那么gulp
必须在其他地方。当从gulp工作的环境中运行时,哪个gulp
显示了什么?再次感谢您的回复echo$PATH~>/Users/me/.npm-packages/usr/local/bin/usr/bin/bin/usr/sbin/sbin
我尝试了哪种模式(和其他模块)但它什么也不返回。我在fish shell和bash中都进行了尝试。我有一个非常相似的设置,我发现自己必须为每个新的shell运行nvm use default
,另请参见