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

本文详细介绍了如何在webpack配置中实现ES6到ES5的转化,包括Babel的安装与配置。接着讲解了js的Eslint检验,以及如何解决全局变量引用问题,提供了两种解决方案。此外,还探讨了webpack如何打包处理图片,包括在js、css和html中引入图片的策略。最后,文章阐述了如何添加公共路径,优化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中<img src=""/>

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'     //添加公共路径
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值