使用node.js,如何跨模块管理npm?

Joe*_*ang 1 node.js

例如,我有以下结构

main
    -- doTask1
        -- task1-1.js
        -- task1-2.js
    -- doTask2
        -- task2-1.js
        -- task2-2.js
Run Code Online (Sandbox Code Playgroud)

如果我运行npm install <some package>doTask1,一个新的目录node_modules中创建doTask1.

现在doTask2,我需要使用相同的包,我是否需要运行npm install <some package>doTask2一次吗?这将创造另一个node_modulesdoTask2是重复的.管理这个的正确方法是什么?

arc*_*don 5

未使用相对路径引用的节点模块的NPM解析是首先检查当前目录,然后向上遍历每个目录,查找node_modules文件夹.

所以在你的情况下,如果你想要相同的软件包/模块的相同版本,只需在main中安装:

在此输入图像描述

最后,您可以全局安装所需的软件包/模块- 但是,这通常仅建议您从命令行所需的软件包(例如gulp,webpack等).在您的情况下,对于特定于应用程序的模块,最好将它们本地安装在node_modules文件夹下.

有关安装npm软件包的一些有用的NPM文档:

  • 在此处参阅"从node_modules文件夹加载"
  • 这里有一篇稍微陈旧但相关的博文