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' }