prod.env.js

  1. 'use strict'
  2. module.exports = {
  3. NODE_ENV: '"production"',
  4. publicPath: '"http://baidu.com"'
  5. }

test.env.js

  1. 'use strict'
  2. module.exports = {
  3. NODE_ENV: '"test"',
  4. publicPath: '"http://test.baidu.com"'
  5. }

package.json

  1. "scripts": {
  2. "start": "webpack-dev-server --config webpack.dev.js",
  3. "build:prod": "cross-env NODE_ENV=prod webpack --config webpack.product.js",
  4. "build:test": "cross-env NODE_ENV=test webpack --config webpack.product.js"
  5. }

webpack.dev.js**

  1. const merge = require('webpack-merge');
  2. const base = require('./webpack.base');
  3. const testEnv = require('./config/test.env');
  4. const prodEnv = require('./config/prod.env');
  5. const webpack = require('webpack');
  6. const path = require('path');
  7. const CNF = {
  8. test:testEnv,
  9. prod:prodEnv
  10. }
  11. const env = CNF[process.env.NODE_ENV];
  12. const config = merge(base,{
  13. output:{
  14. filename:'[name].js',
  15. path:path.resolve(__dirname,'dist'),
  16. publicPath:JSON.parse(env.publicPath)
  17. },
  18. plugins:[
  19. new webpack.DefinePlugin({
  20. env
  21. })
  22. ]
  23. })
  24. if(process.env.NODE_ENV == 'prod'){
  25. console.log('prod');
  26. config.plugins.push(new webpack.HashedModuleIdsPlugin())
  27. }
  28. module.exports = config;