在 Bluemix 中构建 Node.js 应用程序时如何覆盖 node_modules 的默认缓存?
How to override default caching of node_modules while building Node.js application in Bluemix?
是否可以覆盖 Bluemix 的默认行为以缓存 NPM 在构建期间安装的 node_modules?
Bluemix 中的默认行为是缓存 NPM 安装的所有 node_modules。
但是,我们可以使用 NODE_MODULES_CACHE 变量来确定 Node buildpack 是使用还是忽略以前构建的缓存。
要禁用缓存,请执行以下 CF 命令将 NODE_MODULES_CACHE 设置为 false。
$ cf set-env myapp NODE_MODULES_CACHE false
Bluemix 为每个节点应用程序维护一个缓存目录,该目录在构建之间保持不变。缓存存储已解析的依赖项,因此不会在每次部署应用程序时都下载和安装它们。使用 NODE_MODULES_CACHE 变量来确定 Node buildpack 是使用还是忽略以前构建的缓存。默认值为真。
$ cf set-env myapp NODE_MODULES_CACHE false
请注意,您的应用程序中包含的 node_modules 未 缓存。
您可以在顶级 package.json 中使用 cacheDirectories 数组来实现对哪些模块的细粒度控制缓存。当 cacheDirectories 元素出现在 package.json 中时,只有 cacheDirectories 中的那些模块] 数组将被缓存。在下面的例子中只有 node_modules 和 bower_components 被缓存:
{
"cacheDirectories": ["node_modules","bower_components"],
...
}
更多信息here。
是否可以覆盖 Bluemix 的默认行为以缓存 NPM 在构建期间安装的 node_modules?
Bluemix 中的默认行为是缓存 NPM 安装的所有 node_modules。 但是,我们可以使用 NODE_MODULES_CACHE 变量来确定 Node buildpack 是使用还是忽略以前构建的缓存。
要禁用缓存,请执行以下 CF 命令将 NODE_MODULES_CACHE 设置为 false。
$ cf set-env myapp NODE_MODULES_CACHE false
Bluemix 为每个节点应用程序维护一个缓存目录,该目录在构建之间保持不变。缓存存储已解析的依赖项,因此不会在每次部署应用程序时都下载和安装它们。使用 NODE_MODULES_CACHE 变量来确定 Node buildpack 是使用还是忽略以前构建的缓存。默认值为真。
$ cf set-env myapp NODE_MODULES_CACHE false
请注意,您的应用程序中包含的 node_modules 未 缓存。
您可以在顶级 package.json 中使用 cacheDirectories 数组来实现对哪些模块的细粒度控制缓存。当 cacheDirectories 元素出现在 package.json 中时,只有 cacheDirectories 中的那些模块] 数组将被缓存。在下面的例子中只有 node_modules 和 bower_components 被缓存:
{
"cacheDirectories": ["node_modules","bower_components"],
...
}
更多信息here。