从零开始webpack4.x(五) js处理

ES6语法转换 -> babel-loader

依赖: babel-loader @babel/core @babel/preset-env @babel/polyfill 其他依赖可以通过babeljs官方网站查询,转换装饰器 class语法

 
module.exports = {
    module: { 
        rules: [ 
            { 
                test: /\.js$/, 
                use: {
                    loader: 'babel-loader',
                    options: {  
                        presets: [
                            '@babel/preset-env' //  转换es6 -> es5
                        ],
                        plugins: [
                            ["@babel/plugin-proposal-decorators", { "legacy": true }],  //  转换@装饰器
                            ["@babel/plugin-proposal-class-properties", { "loose" : true }],  //  转换class语法
                            ["@babel/plugin-transform-runtime"]   // 特殊语法'aa'.includes('a'); 在require('@babel/polyfill')
                        ]
                    }
                },
                include: path.resolve(__dirname, 'src'),  // 包含
                exclude: /node_modules/  // 排除文件夹
            }
        ]
    }
}

js校验 

依赖:eslint eslit-loader  

需要添加文件'.eslintrc.js' 可以去eslint 官网下载一个配置

enforce

    module: {
        rules: [
            {   // eslint
                 test: /\.js$/, 
                 use: {
                    loader: 'eslint-loader',
                    options: {
                        enforce: 'pre'     // 强制前置执行 previous   post
                    }
                 }
            }
        ]
    }

猜你喜欢

转载自www.cnblogs.com/aisiqi-love/p/12483969.html