12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- const {resolve} = require('path')
- const HtmlWebpackPlugin = require('html-webpack-plugin')
- const EsLintPlugin = require('eslint-webpack-plugin')
- module.exports = {
- entry:'./src/js/index.js',
- output:{
- filename:'js/built.js',
- path:resolve(__dirname,'build')
- },
- module:{
- rules:[
- /*
- 1、js 兼容性处理: babel-loader @babel/core @babel/preset-env
- 只能转换基本语法 类似promise无法转换
- 2、全部js兼容处理: @babel/polyfill
- 比较暴力,全部兼容处理,体积太大
- 3、选择性兼容处理:corejs
- */
- {
- test:/\.js$/,
- exclude: /node_modules/,
- loader: 'babel-loader',
- options:{
- // 预设:指示babel做怎样的兼容性处理
- presets:[
- [
- '@babel/preset-env',
- {
- useBuiltIns: 'usage',
- corejs:{
- version:3
- },
- targets:{
- chrome: '60',
- firefox: '60',
- ie:'9',
- safari: '10',
- edge: '17'
- }
- }
- ]
- ]
- }
- }
- ]
- },
- plugins:[
- new HtmlWebpackPlugin({
- template:'./src/index.html'
- }),
- new EsLintPlugin({
- extensions: ['js', 'json', 'coffee'],
- //exclude: '/node_modules/', //default
- fix:true
- })
- ],
- mode:'development'
- }
|