NPM:我们可以将 node_modules 存储到一个公共文件夹中并在 Angular 项目中使用它吗?

Posted

技术标签:

【中文标题】NPM:我们可以将 node_modules 存储到一个公共文件夹中并在 Angular 项目中使用它吗?【英文标题】:NPM: Can we store node_modules into a common folder and use it in Angular projects? 【发布时间】:2019-04-13 16:47:31 【问题描述】:

我们可以将 node_modules 存储到一个公共文件夹而不是本地存储库文件夹(node_modules)中,然后将这个公共文件夹用于 Angular 项目吗? 我将通过流程图解释我的要求:

我知道它建议我们强烈建议将依赖项放置在本地的 node_modules 文件夹中,以便更快、更可靠地加载它们。 但我仍然在尝试创建一个包含本地模块的通用本地存储库(如 maven 中的 m2)。

首先,这是个好主意吗?(在我看来,如果我能做到这一点,CD 过程将从 20 分钟减少到 2-3 分钟- 25 分钟)[我们执行干净的构建,因此代理从存储库中清除本地更改,因此需要 npm install]

所有依赖都是固定版本(不自动升级)

如何配置 npm 以将包存储到公用文件夹中 本地节点模块数

如何将公共存储库中的包导入我的 Angular 代码库

谁能帮我解决这个问题。 ??

【问题讨论】:

您可以改用yarn,因为yarn 会在本地缓存所有内容,类似于m2。不用改package.json,照样建一个node_modules目录yarnpkg.com/lang/en/docs/migrating-from-npm @user184994 但是当我清理构建时,缓存将被清除。这就是为什么我想将 node_modules 存储到其他位置 您可以将纱线缓存设置为存储在您想要的任何位置 cool...那么我如何引用该位置来导入模块? 和maven中的m2一样,当你做yarn install时,它会先在缓存位置(相当于一个m2)中查找,如果找到,就会从那里复制到你的节点模块。 【参考方案1】:

选项1:

您可以移动 src/lib 文件夹中的 node_modules 文件夹并更新 package.json 以指向本地 src/lib 路径。为此,我们需要使用纱线。

选项2:

您可以将所有 node_modules 移动到您的自定义 git 存储库,在 package.json/config.xml 中将结帐路径修改为自定义 git 存储库。在 npm install 期间,它将从自定义 git repo 加载。

how to specify local modules as npm package dependencies

【讨论】:

【参考方案2】:

我终于能够通过实施 Yarn 来实现这一点。

我们必须将缓存路径设置为 . :

yarn config set cache-folder /usr/local/Caches/yarn

实施后。我能够成功实现上述要求。

【讨论】:

以上是关于NPM:我们可以将 node_modules 存储到一个公共文件夹中并在 Angular 项目中使用它吗?的主要内容,如果未能解决你的问题,请参考以下文章

Docker-compose:在npm安装成功解决方案后,卷中没有node_modules

npm install 后缀

如何避免将 node_modules 添加到我的 git 工作目录? [复制]

使用 npm -g 命令安装时库/包存储在哪里? [复制]

你的硬盘已满,清理 node_modules 来腾出空间

npm升级