Ste*_* Lu 133 macos zsh node.js npm
我比平时更加谨慎,因为我npm对过去的行为感到困惑.
我在Mac上,并通过安装的node.js brew install node.
现在我想jslint.js在命令行上运行作为命令,jslint我发现完成此操作的规范方法是sudo npm install -g jslint使用此输出成功运行:
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
??? nopt@1.0.10 (abbrev@1.0.4)
Run Code Online (Sandbox Code Playgroud)
后来
$ jslint ply.js
zsh: command not found: jslint
Run Code Online (Sandbox Code Playgroud)
由于/usr/local/share/npm/bin没有在我的$PATH.
1)为什么没有brew安装npm bin路径的全局路径?也许它确实如此,但有些东西zsh确实弄乱了它.我可以在哪里找到它?
2)我应该这样做吗?(附加:/usr/local/share/npm/bin到$PATH我底部的导出~/.zshrc)
看起来这不是正确的方法,因为如果我稍后安装其他东西(使用Homebrew或其他东西),我将需要将它附加到我的zsh启动脚本来设置路径.我想在这个特定的例子中,这只是一个问题,即npm install -g没有在正确的位置(如果/usr/local/bin可能)制作正确的符号链接.
我想我要做的是手动/usr/local/bin为我遇到问题的程序内部构建符号链接,它应该足够我的目的.
Tre*_*ham 292
扩展你PATH的:
export PATH=/usr/local/share/npm/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
这不是一个可怕的想法.话虽如此,你不应该这样做.
运行这个:
npm config get prefix
Run Code Online (Sandbox Code Playgroud)
OS X上的默认值是/usr/local,这意味着npm会将二进制文件符号链接到/usr/local/bin,这应该已经存在PATH(特别是如果你使用的是Homebrew).
所以:
npm config set prefix /usr/local 如果它是别的东西,并且sudo与npm一起使用!根据jslint文档,你应该能够做到npm install这一点.如果您将npm安装为sudo(sudo brew install),请尝试使用plain ol'重新安装它brew install.Homebrew应该帮助你保持sudo自由.
在这个问题上花了一段时间,PATH开关没有帮助.我的问题是这里发现的Homebrew/node/npm错误 - https://github.com/npm/npm/issues/3794
如果您已经使用Homebrew安装了节点,请尝试****注意每条评论,这可能不安全.它对我有用但可能会产生意想不到的后果.似乎最新版本的Homebrew正确安装了npm.所以,很可能我会尝试brew update,brew doctor,brew upgrade node等试图****之前:
npm update -gf
Run Code Online (Sandbox Code Playgroud)
或者,如果要使用Homebrew安装节点并使npm工作,请使用:
brew install node --without-npm
curl -L https://npmjs.org/install.sh | sh
Run Code Online (Sandbox Code Playgroud)
我使用brew,前缀已经设置为:
$ npm config get prefix
/Users/[user]/.node
Run Code Online (Sandbox Code Playgroud)
我注意到bin和lib文件夹是root所有,这阻止了通常的非sudo安装,所以我将它们重新拥有给用户
$ cd /Users/[user]/.node
$ chown -R [user]:[group] lib
$ chown -R [user]:[group] bin
Run Code Online (Sandbox Code Playgroud)
然后我刚刚添加了路径到我的.bash_profile,它位于/ Users/[user]
PATH=$PATH:~/.node/bin
Run Code Online (Sandbox Code Playgroud)
我通过执行以下操作成功修复了 Vue Cli no command 错误:
sudo nano ~/.bash_profile编辑您的 bash 配置文件。export PATH=$PATH:/Users/[your username]/.npm-packages/binvue create my-project等等vue --version。我在从https://cli.vuejs.org/安装最新的 Vue Cli 后执行了此操作
我通常使用yarn,但我使用npm全局安装了它npm install -g @vue/cli。如果您愿意,也可以使用纱线yarn global add @vue/cli
注意:如果您已经安装了它,您可能需要先全局卸载它:npm uninstall -g vue-cli
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
169257 次 |
| 最近记录: |