【发布时间】:2017-02-09 20:26:18
【问题描述】:
Gradle 的依赖管理系统将下载的工件存储在本地 Maven 缓存中。当构建再次请求相同的依赖项时,只需从缓存中检索依赖项,避免工件的任何网络传输。
我正在尝试使用 NPM 复制这种行为来构建 JavaScript 项目。我期待 NPM 支持全局 node_modules 缓存,但是在 NPM 中“全局”安装包有不同的含义 => 将包添加到 PATH 以便它可以用作 CLI 工具。
阅读npm install 的文档,标准行为是将软件包安装到 local node_modules 目录中。但这意味着系统上的许多重复包会浪费宝贵的磁盘空间。这也给进行清洁生产构建带来了问题,因为理想情况下 node_modules 应该每次都被吹走。
NPM 是否支持 Gradle 的 Maven 缓存之类的功能? NPM cache 上的文档并没有更清楚地说明如何使用它。更重要的是,使用 NPM 的缓存策略在多个并行构建中是否安全并不明显。
对于繁忙的 CI 环境来说,这似乎是一项基本要求,以前必须解决。我发现npm-cache 工具似乎提供了这种支持,但如果npm 本身本身支持缓存会更好。
谢谢!
【问题讨论】:
标签: maven caching gradle npm dependency-management