webpack学习第十七步—— 打包的环境变量

2020-02-14  本文已影响0人  Love小六六

修改webpack的config文件

// 原本是module.exports = merge(commonConfig,devConfig),现在直接导出devConfig,不需要去merge CommonConfig

module.exports = devConfig
// 原本是module.exports = merge(commonConfig,prodConfig),现在直接导出prodConfig,不需要去merge CommonConfig
module.exports = prodConfig
// 引入merge、devConfig和prodConfig
const merge = require('webpack-merge')
const devConfig = require('./webpack.dev')
const prodConfig = require('./webpack.prod')

const commonConfig = {
    // 原本写的内容
}
// 导出时增加环境变量判断,根据环境变量,去merge不同的webpack config文件
module.exports = (env) => {
    if(env && env.production) {
        return merge(commonConfig,prodConfig)
    } else return merge(commonConfig,devConfig)
}

修改package.json的打包命令

"scripts": {
    "dev": "webpack --config ./config/webpack.common.js",
    "start": "webpack-dev-server --config ./config/webpack.common.js",
    // 使用环境变量
    "build": "webpack --env.production --config ./config/webpack.common.js"
}

另一种写法

module.exports = (production) => {
    if(production) {
        return merge(commonConfig,prodConfig)
    } else return merge(commonConfig,devConfig)
}
"build": "webpack --env production --config ./config/webpack.common.js"

自定义环境变量

module.exports = (env) => {
    if(env && env.production === 'abc') {
        return merge(commonConfig,prodConfig)
    } else return merge(commonConfig,devConfig)
}
"build": "webpack --env.production=abc --config ./config/webpack.common.js"
上一篇 下一篇

猜你喜欢

热点阅读