webpack学习第二天 /es6 转为 es5 / js检验 Eslint/全局变量引用问题/webpack打包图片/添加公共路径

第二天

将es6 转为 es5 转化高级语法

查Babel

安装 yarn add babel-loader @babel/core @babel/preset-env -D

yarn add @babel/plugin-proposal-class-properties -D

配置:

{
        test: /\.js$/,
        use: {
            loader:'babel-loader',
            options:{    //用babel-loader把es6转成es5   
                presets:[  //预置
                    '@babel/preset-env'
                ],
                plugins:[    //小插件
                    '@babel/plugin-proposal-class-properties' //识别类属性
                ]
            }
        }
     },

安装 yarn add @babel/plugin-transform-runtime -D
yarn add @babel/runtime //运行包
yarn add @babel/polyfill //补丁模块
module中 rules

 {
            test: /\.js$/,
            use: {
                loader:'babel-loader',
                options:{    //用babel-loader把es6转成es5   
                    presets:[  //预置
                        '@babel/preset-env'
                    ],
                    plugins:[
                        '@babel/plugin-proposal-class-properties',//识别类属性
                        "@babel/plugin-transform-runtime"
                    ]
                }
            },
            include:path.resolve(__dirname,'src'), //包括
            exclude:/node_modules/                 //排除
        },

js检验 Eslint

Eslint

安装 yarn add eslint eslint-loader -D
下载 .eslintrc.json 文件放在根目录下

{
    test: /\.js$/,
    use: {
        loader:'eslint-loader',      //检验js语法规范
        options:{
            enforce:'pre'            //在普通的loader前执行,之后为 post 
        }
    }

}

全局变量引用问题

1.添加 yarn add expose-loader //暴露全局
module:

{
    test:require.resolve('jquery'),
    use: 'pxpose-loader?$'
}

或者 import $ from 'expose-loader?$!jquery';

2.默认获得 在每个模块中都注入 $

let webpack = require('webpack');
new webpack.ProvidePlugin({ //在每个模块中都注入$
            $:'jquery'
        })

3.给html文件添加jquery cdn
引入: import $ from 'jquery'
为了不重复打包:

 externals:{
      jQuery:'jquery'
  }

webpack打包图片

1.在js中创建图片来引入

import logo from './logo.png'
let image=new Image();
image.src= logo;
document.body.appendChild(image);

添加loader
yarn add url-loader -D 默认会在内部生成一张图片到build文件下
把生成的图片名字返回回来
url-loader 功能类似于 file-loader,但是在文件大小(单位 byte)低于指定的限制时,可以返回一个 DataURL。当大于限制时,默认使用 file-loader

{
    test:/\.(png|jpg|gif)$/,
    use:{
        loader:'url-loader',
        option:{
            limit: 200, 
            outputPath:'/img/'
            publicPath:'http://www.baidu.com' 只给图片添加cdn路径
        }
    }
}

2.在css引入background('url')

3.html中

yarn add html-withing-loader -D
{
    test:/\.html$/,
    use:'html-withing-loader'
}

添加公共路径:

output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'build'),
    publicPath:'http://www.baidu.com'     //添加公共路径
},

你可能感兴趣的:(#,webpack,webpack,eslint)