Heroku Webpack构建所需的开发依赖项

5

在使用Webpack部署一个基于React的应用程序到Heroku时,我认为不需要包含devDependencies。例如,这是我的package.json文件:

  "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 ."
  },

并部署.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作为普通依赖项包含在内以使其工作。这里有什么我遗漏的吗?


请附上您的 package.json 文件。 - Kreozot
1个回答

10

Heroku默认将NPM_CONFIG_PRODUCTION设置为true,以仅安装dependencies。如果您想安装devDependencies,您可以禁用生产模式:

$ heroku config:set NPM_CONFIG_PRODUCTION=false

然而,由于通常不需要在生产构建中使用所有的devDependencies,最好只将实际需要用于生产构建的依赖项移动到dependencies中(如bower、grunt、gulp等)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接