首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npm全局路径前缀

npm全局路径前缀
EN

Stack Overflow用户
提问于 2013-02-11 07:42:16
回答 11查看 215.1K关注 0票数 152

我比往常更谨慎,因为我一直被……的行为搞糊涂了。

在过去。

我在一台苹果电脑上,已经通过以下方式安装了node.js

..。

现在我想运行

在命令行上作为命令

我发现完成此任务的规范方法是

它使用以下输出成功运行:

代码语言:javascript
复制
$ 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)

随后

代码语言:javascript
复制
$ jslint ply.js
zsh: command not found: jslint

由于

不在我的

..。

1)为什么

未安装全局

路径到路径?也许是这样,但有些东西

就是把事情搞砸了。我在哪里可以找到它?

2)我应该这样做吗?(追加

到导出的

在我的心底

)

这似乎不是正确的方法,因为如果我稍后安装其他东西(使用Homebrew或其他东西),我将需要将其附加到我的zsh启动脚本以设置路径。我想在这种特殊的情况下,这只是一个问题

没有在“适当”的位置建立正确的符号链接(如

也许)。

我想我要做的是手动构建内部的符号链接

对于我遇到麻烦的任何程序,它应该对我的目的足够好。

编辑

:我将在2019年更新这个问题,因为这个旧问题很受欢迎,但现在已经过时了,无论是就我的个人工作流程而言,还是就如何最好地安装节点和管理其各种依赖项而言。

我的个人工作流程现在是使用从nodejs.org获得的安装程序在系统上安装节点。实际上,比起自制包本身,我更相信这一点,因为它最清楚如何管理文件。如果你想把你的系统节点从8.10改为10.15,无论是在苹果电脑上还是在视窗系统上,只需从nodejs.org下载适用于你的操作系统的10.15的安装程序即可。在我的经验中,尝试升级通过自制软件安装的节点一直被证明是一种更困难的方法。

此外,需要指出的最重要的一点是,我在上面的jslint示例的npm安装中显示的sudo的使用是非常不受欢迎的;我非常确定,永远不应该使用超级用户安装自制软件包或以任何方式与其交互。这应该是不必要的,并会导致文件权限的头痛!

此外,我推荐ESLint而不是jslint,而且我已经多年没有使用过jslint了。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-02-13 03:32:14

扩展您的

使用:

代码语言:javascript
复制
export PATH=/usr/local/share/npm/bin:$PATH

并不是一个糟糕的主意。话虽如此,你不应该这样做。

运行以下命令:

代码语言:javascript
复制
npm config get prefix

OS X上的默认值为

,这意味着npm会将二进制文件符号链接到

,它应该已经在您的

(尤其是如果您使用的是Homebrew)。

所以:

如果是别的什么,还有

不要使用

使用npm!根据

jslint文档

,您应该能够

它。

如果将npm安装为sudo (

),请尝试使用plain ol‘重新安装它

..。自制的东西应该能让你

-free。

票数 321
EN

Stack Overflow用户

发布于 2014-04-10 11:33:02

在这个问题上花了一段时间,路径切换没有帮助。我的问题是在这里发现的Homebrew/node/npm bug -

https://github.com/npm/npm/issues/3794

如果您已经使用Homebrew安装了node,请尝试

*

*

*

*

请注意,根据评论,这可能不安全。它对我有效,但可能会产生意想不到的后果。最新版本的Homebrew似乎也能正确安装npm。所以我很可能会尝试

等等,然后再尝试

*

*

*

*

代码语言:javascript
复制
npm update -gf

或者,如果要使用Homebrew安装node并让npm正常工作,请使用:

代码语言:javascript
复制
brew install node --without-npm
curl -L https://npmjs.org/install.sh | sh
票数 8
EN

Stack Overflow用户

发布于 2015-09-17 03:56:32

我使用brew,并且前缀已经设置为:

代码语言:javascript
复制
$ npm config get prefix
/Users/[user]/.node

我确实注意到bin和lib文件夹归root所有,这阻止了通常的非sudo安装,所以我将它们重新拥有给用户。

代码语言:javascript
复制
$ cd /Users/[user]/.node
$ chown -R [user]:[group] lib
$ chown -R [user]:[group] bin

然后我将路径添加到我的.bash中

_

位于/Users/的配置文件

用户

代码语言:javascript
复制
PATH=$PATH:~/.node/bin
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14803978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档