webpack进阶--loader
webpack的核心就是它的配置文件,只要配置好配置文件webpack就可以用得利索~~
而配置文件主要就是7个部分entry、output、plugins、resolve、devserver(webpack3.6热更新)、devtool(调试工具)、我们今天要讲的module:rules(或者loaders)
我们今天要讲的loader也是在webpack.config.js里面配置的:
//webpack.config.js const path = require('path'); const htmlPlugin = require('html-webpack-plugin'); module.exports = { entry: './src/app.js', output:{ path: path.resolve(__dirname,'./dist'), filename: '[name].bundle.js' }, resolve: { extensions: ['', '.js', '.vue'] //这里是import的时候不带后缀,webpack帮我们自动查看的后缀列表 }, plugins:[ new htmlPlugin({ template : './index.html', filename: 'index.html' }) ], module:{ rules:[ { test: /\.js$/, loader: 'babel-loader', query:{presets:['latest']}, exclude: path.resolve(__dirname,'./node_modules') },{ test: /\.css$/, loader: 'style-loader!css-loader', },{ test: /\.scss$/, loader: 'style-loader!css-loader!sass-loader', },{ test: /\.html$/, loader: 'html-loader', },{ test: /\.(jpg|png|gif|svg)$/i, use: ['url-loader?limit=500&name=images/[name]-[hash:5].[ext]','image-webpack-loader'], } ] } }
webpack的use可以换成loader或者loaders,loader传字符串,loaders传数组,use和loaders一样
babel-loader需要按官网上面说的一样,安装3个东西(2个时编译器,一个是预设):
npm i babel-loader babel-core babel-preset-latest -D
style-loader是把解析好的css文件以<style></style>的方式插入网页
css-loader是解析css文件
npm i css-loader style-loader -D
sass-loader处理sass
npm i node-sass sass-loader -D
html-loader处理html
npm i html-loader -D
image-wepack-loader 压缩图片
url-loader 图片转base64,传参limit,小于limit kb时转base64,否则传给file-loader
file-loader 直接打包图片,必须安装这个~~
总结:
css代码import入js文件就行了,而html必须最后要在app的dom渲染到