当前位置 : 主页 > 手机开发 > 其它 >

Heroku webpack构建所需的Dev依赖项

来源:互联网 收集:自由互联 发布时间:2021-06-22
我的印象是,当我使用Webpack部署到Heroku基于反应的应用程序时,我不需要包含devDependencies.例如,这是我的包裹. "scripts": { "test": "", "start": "./node_modules/.bin/babel-node server", "build": "rimraf dist e
我的印象是,当我使用Webpack部署到Heroku基于反应的应用程序时,我不需要包含devDependencies.例如,这是我的包裹.

"scripts": {
    "test": "",
    "start": "./node_modules/.bin/babel-node server",
    "build": "rimraf dist && export NODE_ENV=production && webpack --config ./webpack.production.config.js --progress --profile --colors",
    "postinstall": "node deploy",
    "eslint": "eslint .",
    "jscs": "jscs ."
  },

和deploy.js:

if (process.env.NODE_ENV === 'production') {
    var child_process = require('child_process');
    child_process.exec("webpack -p --config webpack.production.config.js", function (error, stdout, stderr) {
      console.log('stdout: ' + stdout);
      console.log('stderr: ' + stderr);
      if (error !== null) {
        console.log('exec error: ' + error);
      }
    });
  }

和Procfile

web ./node_modules/.bin/babel-node server.js

但是,当我推送到Heroku时,我经常得到一个无法识别的webpack命令,因此我将所有devDependencies作为正常依赖项包含在内以使其正常工作.我在这里错过了什么吗?

默认情况下,Heroku将NPM_CONFIG_PRODUCTION设置为true以仅安装依赖项.如果要安装devDependencies,可以禁用生产模式:

$heroku config:设置NPM_CONFIG_PRODUCTION = false

但是,由于您通常不希望生产构建中的所有devDependencies,因此最好只将生产构建实际需要的依赖项移动到依赖项(bower,grunt,gulp等).

网友评论