首页 文章

将 生产环境 添加到开发React Webpack配置中

提问于
浏览
0

我有一个最简单的React环境 . 这在开发中非常有效 .

var webpack = require('webpack');

const config = {
  entry: "./index.js",
  output: { filename: "bundle.js" },
  devtool: 'eval',
module: {
   loaders: [
    {  test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/, query: { presets: ['react', 'env'] }  }
   ]
  }
};

module.exports = config;

我想要做的是添加一个生成版本,以便在控制台脚本中运行,如下所示:npm run build,在package.json中定义:

“build”:“webpack --config webpack.config.js”

如何添加 生产环境 插件和devtool:“cheap-module-source-map”,这样它们只能在 生产环境 中使用,不会被包含在开发中 . 通过 生产环境 插件我的意思是:

new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }),
new webpack.optimize.UglifyJsPlugin()

我没用

var debug = process.env.NODE_ENV !== "production";

devtool: debug ? "cheap-module-source-map" : "eval",

plugins: debug ? [] : [//production plugins here ]

2 回答

  • 1

    听起来你在环境变量方面遇到了麻烦,这绝对是你要走的路 . 如果您发布更多详细信息,我可以帮助您找出问题所在 .

    作为替代方案,您可以将dev配置复制到名为webpack-prod.config.js的文件中,并在那里添加您的 生产环境 资料 . 然后使用 "build": "webpack --config webpack-prod.config.js" 运行它

  • 1

    通常的做法是为 生产环境 配置创建单独的文件并在那里更改属性 .

    webpack.config.production.js:

    var webpack = require('webpack');
    var config = require('./webpack.config');
    
    config.devtool = 'cheap-module-source-map';
    config.plugins = (config.plugins || []).concat([
        new webpack.DefinePlugin({ 
            'process.env.NODE_ENV': JSON.stringify('production') 
        }),
        new webpack.optimize.UglifyJsPlugin()
    ]);
    
    module.exports = config;
    

相关问题