我在本地环境中遇到了一些问题。
我正在使用:
以上所有内容最初都是通过自制软件安装的。
的问题:
我经常使用的节点版本是0.10.48和6.9.2 - 但大部分是4.6.2。
我在fish中创建了一些别名,以便能够运行全局模块。我更愿意解决根本原因,而不是继续应用更多的绑带。
额外信息:
~> 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
您将提供的任何帮助将不胜感激!我一直试图解决这个问题一段时间没有任何运气!
答案 0 :(得分:2)
您可以使用已安装的npm模块。您只需要向外壳添加npm全局路径。为此,我运行了:
$ 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
这是Github related link帮助我解决了问题。
答案 1 :(得分:0)
全局安装节点应用程序时会发生什么?https://docs.npmjs.com/getting-started/fixing-npm-permissions
使用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中使用的PATH,以便您执行 jshint (已安装的软件包) - >指向实际的安装位置
在文件〜/ .profile
中包含用于配置PATH的行export PATH="$HOME/npm-global/lib/node-modules/:$PATH"
答案 2 :(得分:0)
我的永久解决方案(使用macOS Mojave和fish 2.7.1):
set -U fish_user_paths /Users/{USERNAME}/.npm-packages/bin $fish_user_paths
顺便说一句,以下一项有效,但仅在终端会话中有效:
set PATH $PATH /Users/{USERNAME}/.npm-packages/bin
注意:您可以使用以下命令找到npm-packages路径:
printf "%s\n" $PATH
答案 3 :(得分:-3)
我通过完全卸载(并删除任何痕迹)node
,npm
和n
,卸载fish
shell并更改为zsh
来解决此问题
之后,我安装了nvm
并用它来恢复我机器上的node
。
全球npm模块现在正常运作。