首页 > 解决方案 > 为什么即使 NPM_CONFIG_PRODUCTION 为真,也会跳过 devDependencies 的修剪?

问题描述

在尝试将 Node.js 项目推送到 Heroku 时,我可以在日志行之间找到以下内容:

Pruning devDependencies
remote:        Skipping because NPM_CONFIG_PRODUCTION is 'true'

现在,我期待在相反的条件下(NPM_CONFIG_PRODUCTION=false)跳过修剪。

有什么想法吗?

标签: node.jsherokunpm

解决方案


Heroku 的 Node.js buildpack 的默认行为是安装dependenciesdevDependencies,构建 slug,然后剥离devDependencies. 它们将在构建过程中可用,但之后不可用。

设置NPM_CONFIG_PRODUCTION为首先true防止devDependencies安装

您可以通过设置环境变量NPM_CONFIG_PRODUCTION=trueYARN_PRODUCTION=true.

由于devDependencies从未安装,因此无需修剪它们。没有什么可以剥离的。

(从技术上讲,如果为非空,buildpack会跳过修剪NPM_CONFIG_PRODUCTION;它的实际值与这部分逻辑无关。)


推荐阅读