|
@@ -0,0 +1,58 @@
|
|
|
+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'
|
|
|
+}
|