Node.js 无法永久访问internet的生成计算机上的包

Node.js 无法永久访问internet的生成计算机上的包,node.js,npm,Node.js,Npm,我正在将一台机器从较旧的Linux版本迁移到较新的版本。我们有一些节点项目,它们似乎更难移植到新希望的设置中 在旧机器上,package.json中的构建脚本可以毫无问题地运行,因为源代码管理跟踪节点_模块 我们不想再使用这种方法了,因为它的可扩展性不是很强,因为我们希望确保我们可以轻松地为所有用户同时升级所有包,而无需将数百个子文件夹(来自节点_模块)与各种资源放在一起 您是否遇到过此类问题,如果遇到,您是如何处理的 我们能否以某种方式使用全局节点模块来避免每个项目使用多个节点模块 谢谢大家!

我正在将一台机器从较旧的Linux版本迁移到较新的版本。我们有一些节点项目,它们似乎更难移植到新希望的设置中

在旧机器上,package.json中的构建脚本可以毫无问题地运行,因为源代码管理跟踪节点_模块

我们不想再使用这种方法了,因为它的可扩展性不是很强,因为我们希望确保我们可以轻松地为所有用户同时升级所有包,而无需将数百个子文件夹(来自节点_模块)与各种资源放在一起

您是否遇到过此类问题,如果遇到,您是如何处理的

我们能否以某种方式使用全局节点模块来避免每个项目使用多个节点模块

谢谢大家!

我们能否以某种方式使用全局节点模块来避免每个项目使用多个节点模块

有(至少)三种可能性。以下是我建议使用它们的顺序:

  • 如果Node.js在应用程序的/module自己的
    Node\u modules
    目录中找不到包,它将检查父目录(
    。/Node\u modules
    ),然后检查该目录的父目录(
    。/../Node\u modules
    )等。因此,如果所有项目都有一个共享的父目录,您可以将依赖项放在
    节点\u modules
    目录中。请参见Node.js文档中的

  • 第二个选项是将
    NODE\u PATH
    环境变量设置为希望项目在其中搜索其他地方找不到的模块的目录。请参见Node.js文档中的

  • 最后,这是传统行为,但Node.js在放弃之前还将搜索其他三个位置,因此您也可以使用其中一个位置:
    $HOME/.Node\u模块
    $HOME/.Node\u库
    ,以及
    $PREFIX/lib/Node
    。有关更多信息,请参阅(再次)

  • 综上所述,请注意,文档中也正确地说“强烈建议将依赖项放在本地节点\模块文件夹中。这些将更快、更可靠地加载。”


    如果您必须这样做,我将使用上面的第一个选项,并将
    节点\u模块
    文件夹尽可能地放在目录层次结构的最下面。

    节点\u模块不应签入到源代码管理。。。如果只删除node_modules文件夹并进行干净的安装,会发生什么情况?节点npm等的哪个版本