我比平时更加谨慎,因为我npm
对过去的行为感到困惑。
我在 Mac 上并通过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)
随后
$ jslint ply.js
zsh: command not found: jslint
由于/usr/local/share/npm/bin
不在我的$PATH
.
1)为什么没有brew
安装全局npm
bin
路径到路径?也许确实如此,但zsh
确实有些事情搞砸了。我在哪里可以找到那个?
2)我应该这样做吗?(附加到my 底部:/usr/local/share/npm/bin
的导出内容)$PATH
~/.zshrc
看起来这不是正确的方法,因为如果我稍后安装其他东西(使用 Homebrew 或其他东西),我需要将它附加到我的 zsh 启动脚本中以设置路径。我想在这个特定的例子中,这只是npm install -g
没有在“适当的”位置(比如/usr/local/bin
可能)创建正确的符号链接的问题。
我认为我要做的就是/usr/local/bin
为我遇到问题的任何程序手动构建符号链接,它应该足以满足我的目的。
编辑:我将在 2019 年更新这个问题,因为这个老问题很受欢迎,但现在就我的个人工作流程以及如何最好地安装节点和管理其各种依赖项而言已经过时了。
我个人的工作流程现在是使用从 nodejs.org 获得的安装程序在系统上安装 node。我实际上比自制软件包本身更信任它,因为它最了解如何管理文件。如果您想将系统节点从 8.10 更改为 10.15,无论是在 Mac 还是 Windows 上,只需从 nodejs.org 下载适用于您操作系统的 10.15 的安装程序。根据我的经验,尝试升级通过自制软件安装的节点总是被证明是一种更困难的方法。
另外,要指出的最重要的一点是,非常不鼓励使用上面我的 npm install of jslint 示例中所示的 sudo ;我相当肯定自制软件包永远不应该使用超级用户以任何方式安装或交互。这不应该是必要的,并且会导致文件权限问题!
此外,我推荐 ESLint 而不是 jslint,并且多年来没有使用过 jslint。