【发布时间】:2013-01-26 01:44:56
【问题描述】:
我比平时更加谨慎,因为我过去一直对 npm 的行为感到困惑。
我在 Mac 上并通过 brew install node 安装了 node.js。
现在我想在命令行上运行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 path to path?也许确实如此,但zsh 确实把它搞砸了。我在哪里可以找到那个?
2)我应该这样做吗? (将:/usr/local/share/npm/bin附加到我的~/.zshrc底部导出的$PATH)
这似乎不是正确的方法,因为如果我稍后安装其他东西(使用 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。
【问题讨论】:
-
谢谢,它们现在已经修好了。我通常不会那么粗心,但我很快就输入了这个问题
-
@DaveNewton 我通常会这样做,是的。这个问题真的很草率,但它是我最受欢迎的问题之一。
-
复制文字不是比截图容易吗?无论如何固定。
-
@saleemrashid1 嘿,我本来是想这么做的。您真的阅读并复制了吗?谢谢。
-
是的!不客气。我正在开发一款游戏,在等待 NPM 下载东西的时候我做到了!