打包资源
需要配置webpack.config.js文件
作用:指示webpack干哪些活(当你运行webpack指令时,会加载里面的配置)
注:所有的构建工具都是基于nodejs平台运行的,模块化默认才用commonjs
打包样式资源
//resolve用来拼接绝对路径的方法
const {resolve} = require("path");
module.exports = {
? ?//webpack配置
? ?//入口起点
? ?entry:'./src/index.js',
? ?//输出
? ?output: {
? ? ? ?//输出文件名
? ? ? ?filename:"built.js",
? ? ? ?//输出路径
? ? ? ?//_dirname nodejs的变量,代表当前文件的目录绝对路径
? ? ? ?path: resolve(__dirname,'build')
? },
? ?module:{
? ? ? ?rules:[
? ? ? ? ? ?//详细loader的配置
? ? ? ? ? {
? ? ? ? ? ? ? ?//匹配哪些文件
? ? ? ? ? ? ? ?test:/\.css$/,
? ? ? ? ? ? ? ?//使用哪些loader
? ? ? ? ? ? ? ?use:[
? ? ? ? ? ? ? ? ? ?//use数组中loader执行顺序:从右到左,从上到下,依次执行
? ? ? ? ? ? ? ? ? ?//创建style标签,将js中的样式资源插入进行,添加到head中生效
? ? ? ? ? ? ? ? ? ?'style-loader',
? ? ? ? ? ? ? ? ? ?//将css文件变成commonjs模块加载到js中,里面内容是样式字符串
? ? ? ? ? ? ? ? ? ?'css-loader'
? ? ? ? ? ? ? ]
? ? ? ? ? }
? ? ? ] ?
? ? },
? ?plugins:[
? ? ? ?//详细plugins的配置
? ],
? ?mode:'development'//开发模式
? ?//mode:"production"
}
?
/*终端依次输入
npm init
npm i webpack webpack-cli -D
npm i webpack webpack-cli -g
//安装loader
npm i css-loader style-loader -g
npm i css-loader style-loader -D
//我是在webpack5下运行的,指令为
npx webpack
(直接输入webpack无法识别)
*/
如若要在引用less文件,loader的配置不能复用,需要在数组中再加一个配置对象
module:{
? ? ? ?rules:[
? ? ? ? ? ?//详细loader的配置
? ? ? ? ? ?//不同文件必须配置不同的loader处理
? ? ? ? ? {
? ? ? ? ? ? ? ?//匹配哪些文件
? ? ? ? ? ? ? ?test:/\.css$/,
? ? ? ? ? ? ? ?//使用哪些loader
? ? ? ? ? ? ? ?use:[
? ? ? ? ? ? ? ? ? ?//use数组中loader执行顺序:从右到左,从上到下,依次执行
? ? ? ? ? ? ? ? ? ?//创建style标签,将js中的样式资源插入进行,添加到head中生效
? ? ? ? ? ? ? ? ? ?'style-loader',
? ? ? ? ? ? ? ? ? ?//将css文件变成commonjs模块加载到js中,里面内容是样式字符串
? ? ? ? ? ? ? ? ? ?'css-loader'
? ? ? ? ? ? ? ]
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? ? ?test:/\.less$/,
? ? ? ? ? ? ? ?use:[
? ? ? ? ? ? ? ? ? ?'style-loader',
? ? ? ? ? ? ? ? ? ?'css-loader',
? ? ? ? ? ? ? ? ? ?//将less文件编译成css文件
? ? ? ? ? ? ? ? ? ?//需要下载less less-loader
? ? ? ? ? ? ? ? ? ?'less-loader'
? ? ? ? ? ? ? ]
? ? ? ? ? }
? ? ? ] ?
? ? }
注:不要忘记将less,css文件引入出口文件src/index.js中
import './index.css'
import './index.less'
打包html资源
/*
loader : 下载 使用(配置loader)
plugins: ? 下载 引入 使用
*/
const {resolve} = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
?
module.exports = {
? ?entry:'./src/index.js',
? ?output:{
? ? ? ?filename:"built.js",
? ? ? ?path:resolve(__dirname,'build')
? },
? ?module:{
? ? ? ?rules:[
? ? ? ? ? ?//loader的配置
? ? ? ]
? },
? ?plugins:[
? ? ? ?//plugins的配置
? ? ? ?//html-webpack-plugin
? ? ? ?//功能:默认会创建一个空的html,自动引入打包输出所有的资源(js/css)
? ? ? ?//需求:需要有结构的html文件
? ? ? ?new HtmlWebpackPlugin({
? ? ? ? ? ?//复制此路径下的html文件,并自动打包输出所有资源
? ? ? ? ? ?template:'./src/index.html'
? ? ? })
? ],
? ?mode:'development'
}
注:一定要在本地磁盘下载包html-webpack-plugin
npm i html-webpack-plugin -D
|