我比往常更加谨慎,因为我对过go npm
人的行为感到困惑.
我在Mac上安装了node.从js到brew install node
.
现在我想在命令行上以命令jslint
的形式运行jslint.js
,我发现实现这一点的标准方法是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
没有安装global npm
bin
path to path?也许是的,但zsh
做的事情把事情搞砸了.我在哪里能找到
这似乎不是正确的方法,因为如果我以后安装其他东西(使用brew 或其他东西),我需要将其附加到我的zsh启动脚本以设置路径.我猜在这个特殊的例子中,这只是npm install -g
个没有在一个"正确"的位置制作正确的符号链接的问题(比如/usr/local/bin
).
我想我将要做的是手动在/usr/local/bin
中为任何我有问题的程序构建符号链接,它应该足够好,满足我的目的.
EDIT:我在2019年更新了这个问题,因为这个老问题很流行,但现在在我的个人工作流程以及如何最好地安装 node 和管理其各种依赖项方面都过时了.
我的个人工作流程现在是使用从nodejs获得的安装程序.组织在系统上安装 node .实际上,我更相信这一点,而不是brew 软件包本身,因为它最了解如何管理文件.如果您想将系统 node 从8.10更改为10.15,无论是在Mac还是Windows上,只需从nodejs下载安装程序即可.为你的操作系统组织10.15.根据我的经验,try 升级通过brew 软件安装的 node 一直被证明是一种更困难的方法.
此外,需要指出的最大一点是,我在上面的jslint示例的npm安装中所示的sudo的使用是非常不鼓励的;我相当确定,绝不应该使用超级用户安装brew 软件包,或以任何方式与之交互.这是不必要的,而且会导致文件权限问题!
此外,我推荐ESLint而不是jslint,而且我已经多年没有使用jslint了.