查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/ //排除
},
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'
}
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' //添加公共路径
},