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