除了区分不同的配置文件进行打包,还需要在开发时知道当前的环境是开发阶段或上线阶段,所以可借助内置插件 DefinePlugin 来定义环境变量。最终可以实现开发阶段与上线阶段的 api 地址自动切换。

    1. const webpack = require('webpack')
    2. // webpack.dev.js
    3. plugins: [
    4. new webpack.DefinePlugin({
    5. IS_DEV: 'true', // 注意一定是字符串,会解析为 true
    6. other: "'hello'" // 需要用 引号套引号
    7. })
    8. ]
    9. // webpack.prod.js
    10. plugins: [
    11. new webpack.DefinePlugin({
    12. IS_DEV: 'false', // 注意一定是字符串,会解析为 true
    13. other: "'hello'" // 需要用 引号套引号
    14. })
    15. ]