2017-01-19 28 views
0

Я хочу знать, как настроить мою конфигурацию webpack для запуска другой исходной карты для режимов разработки и производства.Переключить исходную карту webpack в зависимости от режима dev/production

Как бы то ни было, я просто комментирую тот, который мне не нужен, что, очевидно, неудобно, я бы хотел, чтобы это решение принималось динамически в зависимости от сценария npm, который я запускаю - производственного сервера или webpack dev.

У меня уже есть переменная, которая соответствует режиму разработки (const debug), но я не уверен, как использовать это в моей конфигурации для определения другой исходной карты.

Вот мой текущий конфиг ...

Webpack.config.js

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

const webpack = require('webpack'); 
const path = require('path'); 

module.exports = { 
    // devtool: 'eval-source-map', 
    devtool: 'source-map', 
    entry: path.join(__dirname, 'public', 'app-client.js'), 
    devServer: { 
     inline: true, 
     port: 3333, 
     contentBase: "public/static/", 
     historyApiFallback: { 
     index: '/index-static.html' 
     } 
    }, 
    output: { 
     path: path.join(__dirname, 'public', 'static', 'js'), 
     publicPath: "/js/", 
     filename: 'bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: path.join(__dirname, 'public'), 
       loader: ['babel-loader'], 
       query: { 
        presets: debug ? ['react', 'es2015', 'react-hmre', 'stage-2'] : ['react', 'es2015', 'stage-2'] 
       } 
      }, 
      { 
       test: /\.(jpe?g|png|gif|svg)$/i, 
       loaders: [ 
        'file?hash=sha512&digest=hex&name=[hash].[ext]', 
        'image-webpack?bypassOnDebug&optimizationLevel=7&interlaced=false' 
       ] 
      } 
      ] 
    }, 
    plugins: debug ? [] : [ 
     new webpack.DefinePlugin({ 
     'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) 
     }), 
     new webpack.optimize.DedupePlugin(), 
     new webpack.optimize.OccurenceOrderPlugin(), 
     new webpack.optimize.UglifyJsPlugin({ 
     compress: { warnings: false }, 
     mangle: true, 
     sourcemap: false, 
     beautify: false, 
     dead_code: true 
     }), 
    ] 
} 

ответ

0

process.env.NODE_ENV в webpack.config.js устанавливается только если вы предоставите переменную окружения NODE_ENV при вызове Webpack, например, используя NODE_ENV webpack в вашем package.json. Если вам также необходимо поддерживать Windows, используйте пакет env-variable.

См. Также руководство по building for production для получения более подробной информации и других подходов.