用于多个项目的单个node_modules文件夹

Mig*_*ido 5 node.js gruntjs

我有一个这样的网站列表:

project1/site
project2/site
project4/site
...
projectN/site
Run Code Online (Sandbox Code Playgroud)

每个site文件夹都有内部node_modules文件夹,gruntfile.js文件和一个package.json文件。所以他们看起来像这样:

project1/site/gruntfile.js
project1/site/package.json
project1/site/node_modules/
...
projectN/site/gruntfile.js
projectN/site/package.json
projectN/site/node_modules/
Run Code Online (Sandbox Code Playgroud)

我的任务,插件和其他东西一切正常。

我想知道我是否可以在根文件夹中只使用一个 node_modules 文件夹来解决这个问题,因为我的网站正在使用类似的任务。

project1/site/
project2/site/
...
projectN/site/
/node_modules/
Run Code Online (Sandbox Code Playgroud)

这有可能吗?我需要做什么?

小智 2

您可以使用该-g标志来npm全局安装模块,如下所示:\nnpm install -g <modulename> \n这将安装所有模块,以便所有节点项目都可以访问它们。

\n

然后您可以使用 为每个项目创建到所需模块的链接,如 @jakerella引用的npm link链接中所述

\n
\n

...在某些情况下您想同时执行这两种操作。Coffee-script 和\nExpress 都是具有命令行\n界面和库的应用程序的很好示例。在这些情况下,您可以执行\n以下操作之一:

\n
    \n
  1. 全局安装它,然后 npm link Coffee-script 或 npm link\nexpress (如果您\xe2\x80\x99re 在支持符号链接的平台上。)然后\n您只需更新全局副本即可将所有符号链接更新为\n好吧。
  2. \n
\n
\n

请参阅npm 文档

\n

  • 不建议这样做,因为这样您就无法将已安装的模块与项目联系起来。`package.json` 文件不能与全局标志 (`-g`) 结合使用。来自 [npm 博客](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation):“就像全局变量有点恶心一样,但是在某些情况下也是必要的,全局包很重要,但如果不需要,最好避免。” (3认同)