博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复习webpack4之环境变量
阅读量:6268 次
发布时间:2019-06-22

本文共 1639 字,大约阅读时间需要 5 分钟。

之前学习过webpack3的知识,但是webpack4升级后还是有很多变动的,所以这次重新整理一下webpack4的知识点,方便以后复习。

这次学习webpack4不仅仅要会配置,记住核心API,最好还要理解一下webpack更深层次的知识,比如打包原理等等,所以可能会省略一些比较基础的内容,但是希望我可以通过此次学习掌握webpack,更好地应对以后的工作。

1.环境变量

之前我们是通过package.json中,不同命令指向不同配置文件,来进行不同环境的打包,现在我们有另外一种方式。

我们现在删除webpack.dev.js和webpack.prod.js中的merge,只单独导出对应环境的配置。然后在webpack.common.js中引入merge。

然后把webpack.common.js中的内容变成commonConfig对象

const commonConfig = {  entry: {    main: './src/index.js'  },  output: {    path: path.resolve(__dirname, '../dist')  },  module: {    rules: [      {        test: /.(jpg|png|gif)$/,        use: {          loader: 'url-loader',          options: {            name: '[name]_[hash:5].[ext]',            outputPath: 'images/'          }        }      },      {        test: /.(eot|ttf|svg|woff)$/,        use: {          loader: 'file-loader'        }      },      {         test: /\.js$/,         exclude: /node_modules/,        use: [          {            loader: 'babel-loader'          },          {            loader: 'imports-loader?this=>window'          }        ]      }    ]  },     plugins: [    new HtmlWebpackPlugin({      template: 'src/index.html'    }),    new CleanWebpackPlugin()  ],  performance: false,  optimization: {    usedExports: true,    splitChunks: {      chunks: "all",      cacheGroups: {        vendors: {          test: /[\\/]node_modules[\\/]/,          priority: -10,          name: 'vendors'        }      }    }  }}复制代码

然后我们就可以通过传参来判断现在是打包哪一个环境的代码,去对应merge不同环境的配置文件。

现在打包的时候,开发环境只需要指向webpack.common.js文件即可,而打包线上环境的代码,需要加一个--env.production参数

环境变量的值可以自由定,比如可以让值等于abc

这样,打包配置需要改成

转载于:https://juejin.im/post/5cdac893518825686a07015b

你可能感兴趣的文章
Hibernate_14_数据连接池的使用
查看>>
Codeforces Round #271 (Div. 2) D. Flowers (递推 预处理)
查看>>
jacky自问自答-java并发编程
查看>>
Struts2+JSON数据
查看>>
zTree实现单独选中根节点中第一个节点
查看>>
Cocos2D-x设计模式发掘之中的一个:单例模式
查看>>
很强大的HTML+CSS+JS面试题(附带答案)
查看>>
用树莓派实现RGB LED的颜色控制——C语言版本号
查看>>
VC2012编译CEF3-转
查看>>
java 自己定义异常,记录日志简单说明!留着以后真接复制
查看>>
Android 使用AIDL实现进程间的通信
查看>>
机器学习(Machine Learning)&深度学习(Deep Learning)资料
查看>>
jquery的图片轮播 模板类型
查看>>
C# 获取文件名及扩展名
查看>>
Web安全学习计划
查看>>
输出有序数组的连续序列范围
查看>>
zinnia项目功能分析
查看>>
windows cmd for paramiko
查看>>
SQL经典面试题集锦
查看>>
View学习(一)-DecorView,measureSpec与LayoutParams
查看>>