【问题标题】:NPM on OSX, error getting global installed packagesOSX 上的 NPM,获取全局安装包时出错
【发布时间】:2015-06-24 01:37:37
【问题描述】:

我在运行 OSX 10.9 的 MBP 上安装了 nodejs,我已经安装为从 nodejs 网站下载的包。然后我按照 mean.io 上的说明安装了 MEAN 堆栈。

命令是: sudo npm install -g mean-cli 意思是初始化 yourNewApp

正常工作

现在真正的问题是,当我的应用程序创建后,我使用终端进入目录,并编写 gulp,它给我一些错误,即找不到一些强制性模块。

模块写在 package.json 文件中,意味着生成,它们作为全局模块安装在 ~/.npm 上

我浏览了文件夹,里面有所有必需的包文件夹,在文件夹内有一个 package.tgz 文件,其中包含包的代码和一个包文件夹,其中包含描述包本身的 package.json 文件。

现在我不明白为什么压缩包以及为什么如果它们是全局安装的,则无法从我的项目文件夹中的 gulp 访问。

提前致谢。

【问题讨论】:

  • 在您的应用目录中尝试npm install
  • 我试过了,效果很好,但问题本身是因为我不能使用全局安装的模块,所以它们是全局安装的
  • ~/.npm 是缓存目录,而不是安装(全局)模块的目录。如果 Node 找不到全局安装的包,请看答案to this question
  • 谢谢,你是对的。很高兴知道

标签: node.js macos


【解决方案1】:

如果您安装了一些 global 模块,那么您最好不要将其放入应用程序的 package.json 中,因为当您运行您的应用程序时,这是要搜索的第一个位置,如果它在那里,您的应用程序就在查看node_modules 文件夹,如果不存在,您的应用将崩溃。

我的建议是尝试将模块安装在您的应用程序中,npm install your_module --save,因为您的应用程序将是可移植的,并且通过简单的npm install,您将能够安装所有需要的包。

但如果您仍想安装全局软件包,您可能需要遵循this 规则:

  1. 如果您要安装要在程序中使用的东西,请使用 require('whatever'),然后将其安装在本地项目的根目录下。
  2. 如果您要在 shell、命令行或其他地方安装要在 shell 中使用的东西,请全局安装,以便其二进制文件最终出现在您的 PATH 环境变量中。

如果您有时间阅读link,那么您将看到存在异常以及如何处理它们。

【讨论】:

  • 谢谢你,你是对的。在链接上,我找到了我需要的所有信息。再次感谢。
猜你喜欢
  • 2014-02-07
  • 2016-02-22
  • 2018-06-01
  • 2021-04-13
  • 2017-11-05
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
相关资源
最近更新 更多