Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用node.js,如何跨模块管理npm?_Node.js - Fatal编程技术网

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

使用node.js,如何跨模块管理npm?,node.js,Node.js,例如,我有以下结构 main -- doTask1 -- task1-1.js -- task1-2.js -- doTask2 -- task2-1.js -- task2-2.js 如果在doTask1中运行npm install,则在doTask1中创建一个新目录node\u modules 现在在doTask2中,我需要使用相同的软件包,我是否需要在doTask2中再次运行npm install?它将在do

例如,我有以下结构

main
    -- doTask1
        -- task1-1.js
        -- task1-2.js
    -- doTask2
        -- task2-1.js
        -- task2-2.js
如果在
doTask1
中运行
npm install
,则在
doTask1
中创建一个新目录
node\u modules


现在在
doTask2
中,我需要使用相同的软件包,我是否需要在
doTask2
中再次运行
npm install
?它将在
doTask2
中创建另一个重复的
节点。管理此问题的正确方法是什么?

对于没有相对路径引用的节点模块,NPM解决方案是首先检查当前目录,然后从当前目录向上遍历每个目录,查找节点模块文件夹

因此,在您的情况下,如果您想要相同软件包/模块的相同版本,只需在main中安装即可:

最后,您可以在全局范围内安装所需的软件包/模块,但是,通常只建议您从命令行的任何位置(例如gulp、webpack等)知道需要安装的软件包。在您的情况下,对于特定于应用程序的模块,最好将其本地安装在节点\u modules文件夹下

关于安装NPM包的一些有用的NPM文档:

  • 请参阅“从节点\模块文件夹加载”
  • 一篇稍旧但相关的博客文章

对于没有相对路径引用的节点模块,NPM解决方案是首先检查当前目录,然后从当前目录向上遍历每个目录,查找节点模块文件夹

因此,在您的情况下,如果您想要相同软件包/模块的相同版本,只需在main中安装即可:

最后,您可以在全局范围内安装所需的软件包/模块,但是,通常只建议您从命令行的任何位置(例如gulp、webpack等)知道需要安装的软件包。在您的情况下,对于特定于应用程序的模块,最好将其本地安装在节点\u modules文件夹下

关于安装NPM包的一些有用的NPM文档:

  • 请参阅“从节点\模块文件夹加载”
  • 一篇稍旧但相关的博客文章

您可以在全球范围内安装模块。不要按照Shomz的建议进行安装。我很确定有更好的解决办法。谢谢。我知道我可以在全球范围内安装,但我觉得有些不对劲,所以我要求确保。你可以在全球范围内安装模块。不要按照Shomz的建议去做。我很确定有更好的解决办法。谢谢。我知道我可以在全球范围内安装,但我觉得有点不对劲,所以我要求确认一下。感谢您以一种很好的格式提供的详细解释。很高兴知道它将向上遍历node_modules文件夹。@JoeHuang-没问题,谢谢您的回答。在回答的底部添加了一些有用文档的链接,如果感兴趣,可以提供更多详细信息。将文档链接更新到一个博客,该博客实际上更好地描述了该过程。感谢您以良好的格式提供的详细解释。很高兴知道它将向上遍历node_modules文件夹。@JoeHuang-没问题,谢谢您的回答。在答案的底部添加了一些有用文档的链接,如果感兴趣,可以提供更多详细信息。将文档链接更新到一个博客,实际上更好地描述了流程。