var HtmlWebpackPlugin = require("html-webpack-plugin");
var config = {
entry: {
main: "./src/main.js",
},
output: {
path: __dirname + "/dist",
filename: "[name]-min.js"
},
module: {
rules: [
{
test: /.css/,
loader: [
"style-loader",
"css-loader",
"postcss-loader",
"less-loader"
]
},
// {
// test: /.(png|jpe?g|gif)
/,
use: [
{
loader: 'url-loader',
options: {
limit: 8192 // 单位时b
}
}
]
},
{
test: /.js$/,
use: [
{
loader: "babel-loader",
}
],
include: __dirname + "/src",
exclude: __dirname + "/node_module"
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: "./index.html",
filename: "demo1.html",
inject: "body",
// chunks: ["b"]
})
]
};
module.exports = config;
html-webpack-plugin
npm i html-webpack-plugin
用来生成html文件的,会默认将压缩的js文件用script引入到页面
template:生成html用的模板 filename:生成的html的名字 inject:script标签放置的位置(放在body里面还是head标签里面)
loader(打包样式就要有loader)
css需要安装的loader:npm i style-loader css-loader --save-dev
postcss-loader(把所有不兼容的css3加前缀,兼容的)
npm i postcss-loader --save-dev(需要添加配置文件postcss.config.js)
处理兼容autoprefixer(例如给display:flex增加前缀的)
npm i autoprefixer --save-dev
如果项目中用的是less,要用less-loader,less-loader依赖于less,要下载less
npm i less less-loader --save-dev
处理图片的文件png,jpg,jpeg,gif
npm i url-loader --save-dev或者npm i file-loader --save-dev都可以处理图片 { loader:'url-loader', options:{//options是参数 limit:8192 } }
babel
npm i babel-loader --save-dev(8版本要依赖npm i @babel/core --save-dev)
babel安装完包还要在根目录配置.babelrc文件
es2015是es6
处理es6
- .bablerc中的数组中的"es2015"的安装包是bable-preset-es2015
- .bablerc中的数组中的"stage-2"的安装包是babel-preset-stage-2
webpack rules
include 规则处理的文件范围 exclude 排除范围
webpack-dev-server(装完会起服务,会把html和js打包,会打包的内容缓存起来,改一下,就会被监听到,不是真的打包到dist里面,开发的时候用)
npm i webpack-dev-server --save-dev