1、初始化一个项目,要有package.json文件
在目录文件中执行npm init -y之后就会自动创建一个package.json
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
2、安装webpack、webpack-cli
npm install webpack webpack-cli -D
3、在目录下创建一个src/index.js文件,使用webpack打包
打包命令 npx webpack
webpack会自动找src/index.js下的文件当做入口去进行打包
输出到dist/下的index.js 在不进行配置下,src/index.js和dist目录都是webpack默认的
这里因为没有html文件,所以在打包完之后需要自己手动新建一个html文件,然后引入js,在浏览器查看效果
4、如果需要自己定义一个配置文件,可以取名叫webpack.config.js,使用命令npx webpack也会找这个文件,如果换其他文件名,例如:prod.config.js则需要在package.json中的script中配置
"dev": "webpack --config prod.config.js --mode development"
dev是可以执行的命令:npm run dev dev这个名字可以更换 后面的是你要执行指定的webpack配置文件
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack --config prod.config.js --mode development",
"build": "webpack"
},
这里在后面指定了--mode,不指定的话在编译会报错,也可以在配置文件中指定:
module.exports = {
mode:'development'
}
下面开始wenpack的详细配置介绍
5、webpack的核心概念
module.exports = {
entry:'./src/index.js' // string | object webpack 执行构建的入口 默认:"./src/index.js"
output:{
path:path.resolve(__dirname, 'dist')
}, // 配置资源输出位置和名称 必须是绝对路径 例如 path.resolve(__dirname, 'dist')
mode:"", // 打包构建模式 =》开发模式和生产模式 区别是:开发模式不会压碎代码,方便调式和读取,生产模式压缩代码
module:{},// 模块,webpack基于node,有一切皆模块概念 这里会配置一些规则,例如loaders
plugins:[],// webpack功能扩展
}
6、webpack默认只能打包js和json,如果遇到css,img等静态资源都需要loader进行预处理,例如写一个css
在src/assets/common.css
body{
background:red
}
/src/index.js中导入
import from "./assets/common.css"
这样打包时候会报错,原因就是webpack不能打包css文件,所以需要加loader去处理 需要先下载css-loader和style-loader
loader加载顺序一定要写对,因为是按照从左到右加载的
css-loader的作用很单一,只是处理css文件,但并不会插入到页面,而style-loader的作用是创建一个style标签,将css内容插入,然后将style标签插入到body的head标签中,然后打包才会生效
prod.config.js
module.exports = {
module: {
rules: [{
test: /\.css/,
use: ["style-loader", "css-loader"]
}
]
},
}
7、在实际项目中我们都需要自己手动创建html文件,因为webpack中有插件可以指定模板然后生成一个模板在dist目录中
可以使用 html-webpack-plugin 使用npm install html-webpack-plugin -D 下载
需要在目录下先创建一个html文件,作为生成模板,这样打包之后就会有html文件,不再需要手动创建,并且会自动引入生成的js文件
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
plugins: [new HtmlWebpackPlugin({
title: '测试',
template: 'public/index.html' // 将指定文件作为生成html的模板
}),
new CleanWebpackPlugin(), // 清除dist文件
new MiniCssExtractPlugin({ // 这个是可以将css文件单独抽离,之后会写到
filename: 'assets/[name].css'
})
]
}
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!