webpack 如何区分开发环境和生产环境

第一种方法:

方法出处:命令行接口(CLI) | webpack 中文文档

1.利用webpack.config.js 返回的是个函数,利用函数的参数,来区分环境

具体步骤

1) package.json文件:在npm scripts 命令后面追加 --node-env production/development

复制代码
  "build": "webpack --config webpack.config.js --node-env development"

2)webpack.config.js 是个函数形式,可以看到函数有两个参数,把参数都打印出来看看,可以看到process.nodeEnv 既是上述 --node-env 后面设置的值

复制代码
const path = require('path');
module.exports = (env,process)=>{
  console.log('Production: ', env); 
  console.log('process',process);
  console.log(process.nodeEnv);
  return {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'webpack-numbers-test.js',
    library: {
      type:'umd',
      name:"webpackNumbersTest"
    },
    globalObject: 'this',
    clean:true
  },
  externals:{
    commonjs: 'lodash',
    commonjs2: 'lodash',
    amd: 'lodash',
    root: '_',
  }
};
}

第二种方法:

  1. 安装 cross-env

    npm install cross-env -D

  2. 在package.json npm scripts 前面追加 cross-env NODE_ENV=production/development

    "build": "cross-env NODE_ENV=production webpack --config webpack.config.js",

3.即可在webpack.config.js 中访问 process.env.NODE_ENV

第三种方法

将公共的,生产和开发的不同抽离出来,利用webpack-merge 进行合并

方法出处:生产环境 | webpack 中文文档

相关推荐
电筒20 分钟前
URL重定向需要多次encodeURIComponent
前端
程序员鱼皮23 分钟前
Stack Overflow,彻底凉了!
前端·后端·计算机·程序员·互联网
Nicholas6834 分钟前
Flutter动画框架之AnimationController源码解析(二)
前端
鹏程十八少1 小时前
2. Android 第三方框架 okhttp责任链模式的源码分析 深度解读二
前端
贵州数擎科技有限公司1 小时前
LangChain 快速构建你的第一个 LLM 应用
前端·后端
ze_juejin1 小时前
Mongoose 与 MongoDB 数据库教程
前端
FogLetter1 小时前
深入理解React的useLayoutEffect:解决UI"闪烁"问题的利器
前端·react.js
冰糖雪梨dd1 小时前
h() 函数
前端·javascript·vue.js
每天都想睡觉的19001 小时前
在Vue、React 和 UniApp 中实现版本比对及更新提示
前端·vue.js·react.js
拾光拾趣录1 小时前
ESLint:从代码扫描到自动修复
前端·eslint