当我开始遇到麻烦时,我正试图通过npm升级phonegap.长话短说,我的电脑上有两个node_modules目录.

/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules

当我运行npm upgrade -g phonegap时,npm似乎更新了驻留在/usr/local/lib/node_modules中的包的副本.然而,如果我发现符号链接指向/usr/local/share/npm/lib/node_modules处的旧安装.

此外,当我try 安装独立软件包(如express)时,文件安装在/usr/local/lib/node_modules目录中,,但在我的$PATH中的任何地方都不会创建指向可执行文件的符号链接罢工>

两个问题:

  • Mac OS X上 node 模块的正确目录是哪个?
  • 在安装软件时,如何配置npm来链接my $PATH中的可执行文件罢工>

优点:安装node的方法会影响配置吗?有lot of options个.


EDIT:我发现符号链接是在我的/usr/local/bin中创建的,但我的.bash_profile$PATH中设置为/usr/local/share/npm/bin领先于/usr/local/bin.我模模糊糊地记得在某个时候把这条路径添加到我的个人资料中,但我不知道为什么.

所以现在的问题是:我怎么会在我的电脑上有两个不同的node_modules目录?为什么我想把我的node_modules放在share/npm/lib子目录中,而不是/usr/local/lib子目录中?

推荐答案

/usr/local/lib/node_modules是全局安装的 node 模块的正确目录.

/usr/local/share/npm/lib/node_modules对我来说毫无意义.这里的一个问题是,您感到困惑,因为有两个名为node_modules的目录:

/usr/local/lib/node_modules
/usr/local/lib/node_modules/npm/node_modules

后者似乎是node附带的 node 模块,例如lodash,而前者是我使用npm安装的 node 模块.

Node.js相关问答推荐

MongoServelSelection错误:服务器 Select 在30000 ms后超时

可以删除一个mongodb catch块

获取驱动器文件夹的直接子文件夹时出现问题

如何在医学中按patientId查找一个并同时插入多个数据

当变量在另一个文件中初始化时,在初始化错误之前无法访问变量

在 Docker 容器内创建一个 cron 作业(job)来执行 run.js 文件中的函数

我如何在nodejs中的路由之间交换令牌

无法通过 NextJS 访问 HTTP 帖子中的正文

express 和 mongoose 的新密码不正确

在 linux mint 上部署 node 应用程序的最简单方法是什么?

如何删除mongodb中嵌套数组中所有出现的数组元素

在系统启动时启动本地 node 服务器

使用 Forms API 进行批量更新时生成 itemId

在express js模型中将js转换为Typescript 时Typescript 错误

Web3.js 脚本在监听 CreatedPairs 时退出

Aptana Studio 是否有 NodeJS 插件?

安全沙箱并执行用户提交的 JavaScript?

当我try 向我的 S3 存储桶 (Node.js) 发送内容时,AWS 缺少凭证

续集findbyid不是一个函数,但显然findAll是

从 JavaScript 文件或 REPL 中 require()'ing CoffeeScript 文件