在Heroku上安装devDependencies

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Heroku上安装devDependencies相关的知识,希望对你有一定的参考价值。

我希望Heroku在我推送之后构建我的应用程序,这样我每次做出更改时都不必推送构建文件夹。但是heroku只安装package.json和grunt(我的构建工具)中的依赖项,并且它的所有组件都在devDependencies中。我想把它们留在他们所属的地方。这里的解决方法是什么?

答案

默认情况下,Heroku仅安装生产依赖项,忽略devDependencies下的开发依赖项。

将npm生产变量设置为false可以解决问题:

heroku config:set NPM_CONFIG_PRODUCTION=false

有关更多信息,请访问Heroku Node.js Support page

另一答案

Keeping NPM_CONFIG_PRODUCTION true,我用过Heroku's script hooks

"scripts": {
  ...
  "heroku-prebuild": "export NPM_CONFIG_PRODUCTION=false; export NODE_ENV=; NPM_CONFIG_PRODUCTION=false NODE_ENV=development npm install --only=dev --dev",
  "heroku-postbuild": "export NPM_CONFIG_PRODUCTION=true; export NODE_ENV=production;",
   ...
},

(最后)为我工作。

另一答案
scripts": {
  ...
  "heroku-prebuild": "npm install --only=dev"
}

这对我来说已经足够了。感谢PixnBits关于heroku-prebuild的提示。还 - 我的问题是与巴贝尔。我最终将babel-preset-es2015和其他预设移动到依赖关系,否则babel抱怨预设。

更新:8/11/2017我一直遇到麻烦。事情似乎发生了变化(npm现在是5.3)。但我看到的是heroku-prebuild脚本正在运行,然后安装后的脚本正在运行(但我只是尝试安装-dev)。

所以我一直在做的就是运行:

heroku config:set NPM_CONFIG_PRODUCTION=false

然后就这样设置吧。我想要一个更好的解决方案。

另一答案

要卸载依赖项,您需要执行这些操作

  1. 更新NPM_CONFIG_PRODUCTION heroku config:设置NPM_CONFIG_PRODUCTION = false
  2. 添加heroku-prebuild: 脚本“:{...”heroku-prebuild“:”npm install“}
另一答案

你可以在你的构建脚本"build": "npm install --only=dev"中使用它,以防你仍然想要执行更多操作,例如使用babel转换你的代码你可以做类似这样的事情"build": "npm install --only=dev && babel src --out-dir dist --copy-files"

以上是关于在Heroku上安装devDependencies的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 部署在“修剪 devDependencies”步骤中继续失败

npm install 不会安装 devDependencies

UnhandledPromiseRejectionWarning:错误:找不到模块“tailwindcss”heroku 错误

XML::LibXSLT 无法在 Heroku 上安装

在 Heroku 上安装模块

在 Windows 10 上安装 Heroku Toolbelt