OSX上的NPM,获取全局安装包时出错

时间:2015-06-23 16:17:51

标签: node.js macos

我在运行OSX 10.9的MBP上安装了nodejs,我已经安装了从nodejs网站下载的软件包。然后我按照mean.io。

的说明安装了MEAN堆栈

命令是: sudo npm install -g mean-cli 意味着init yourNewApp

正常工作

现在真正的问题是,在创建我的应用程序之后,我使用终端输入目录,然后写入gulp,它会给我一些错误,但是找不到某些必需的模块。

模块写在package.json文件中,表示已生成,它们作为全局模块安装在〜/ .npm

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

现在我不明白为什么包被压缩了,为什么如果它们被安装了globaly,就无法从我项目文件夹中的gulp访问。

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

我的建议是尝试在您的应用中安装您的模块npm install your_module --save,因为您的应用程序将是可移植的,只需npm install,您就可以安装所有需要的软件包。

但如果您仍想安装全球套餐,您可能需要遵循this规则:

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

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