在Heroku上安装devDependencies

ion*_*ox0 44 heroku dependency-management npm gruntjs

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

Edo*_*Edo 79

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

设置npm生产变量来false做到这一点:

heroku config:set NPM_CONFIG_PRODUCTION=false
Run Code Online (Sandbox Code Playgroud)

更多信息可在Heroku Node.js支持页面获得.

  • @unblevable我不这么认为:```` - > Node.js app检测到----->创建运行时环境NPM_CONFIG_LOGLEVEL =错误NPM_CONFIG_PRODUCTION = false NODE_ENV =生产NODE_MODULES_CACHE =真``` (6认同)
  • 这会将您的NODE_ENV设置为开发,这可能会降低您的应用速度. (3认同)
  • 你如何在heroku-prebuild中这样做,这样你就可以在PRODUCTION中保持这个过程?我以为我可以调用一个bash脚本并在那里"设置"它,但它不会以这种方式安装devdeps. (3认同)
  • 我做了heroku配置:设置NPM_CONFIG_PRODUCTION = false并重新启动dyno并且dev依赖项仍然无法安装 (2认同)
  • 如果有人在使用纱线时看到这一点,则相当于“YARN_Production=false” (2认同)

Pix*_*its 11

保持 NPM_CONFIG_PRODUCTION true,我使用了Heroku的脚本钩子:

"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;",
   ...
},
Run Code Online (Sandbox Code Playgroud)

(最后)为我工作.