Install devDependencies on Heroku

前端 未结 5 1670
南笙
南笙 2020-12-23 12:30

I would like to have Heroku build my app after I push it so that I don\'t have to push the build folder up every time I make a change. However heroku only installs the depen

相关标签:
5条回答
  • 2020-12-23 13:21
    scripts": {
      ...
      "heroku-prebuild": "npm install --only=dev"
    }
    

    This was enough for me. Thanks to PixnBits for the hint about heroku-prebuild. Also - my problem was with babel. I ended up moving babel-preset-es2015 and other presets into dependencies otherwise babel complained about presets.

    Update: 8/11/2017 I've been having trouble with this. It seems like things have changed (and npm is on 5.3 now). But what I see is that the heroku-prebuild script is getting run, and then the post-install script is getting run (but I was only trying to install -dev).

    So what I have been doing that works is to just run:

    heroku config:set NPM_CONFIG_PRODUCTION=false
    

    And just leave it set that way. I'd love a better solution.

    0 讨论(0)
  • 2020-12-23 13:25

    you can use this in your build script "build": "npm install --only=dev" should in case you still want to perform more operations e.g transpiling your code with babel you can do something like this "build": "npm install --only=dev && babel src --out-dir dist --copy-files"

    0 讨论(0)
  • 2020-12-23 13:26

    Heroku by default installs only the production dependencies, ignoring the development dependencies under devDependencies.

    Setting the npm production variable to false do the trick:

    heroku config:set NPM_CONFIG_PRODUCTION=false
    

    More info are available at the Heroku Node.js Support page.

    0 讨论(0)
  • 2020-12-23 13:31

    To unintall dependencies you need to do these

    1. Update NPM_CONFIG_PRODUCTION

      heroku config variable set

      NPM_CONFIG_PRODUCTION=false

    2. Add heroku-prebuild:

        scripts": {
          ...
          "heroku-prebuild": "npm install"
        }

    or
    

        scripts": {
          ...
          "heroku-prebuild": "npm install --only=dev"
        }

    0 讨论(0)
  • 2020-12-23 13:32

    Keeping NPM_CONFIG_PRODUCTION true, I used 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;",
       ...
    },
    

    (Finally) worked for me.

    0 讨论(0)
提交回复
热议问题