一.简单打包
1.首先创建两个文件包build 和src 文件包
2.在src上创建.css .html .less .js 文件。
3..js文件是基本配置
4.创建webpack.config.js文件,写入配置信息。
5.build是自动打包生成的文件
简单小例子如下:
创建index.less文件
div{
.title{
font-size: 66px;
color: red;
}
}
创建index.css文件
body{
background-color: orange;
}
创建index.js文件
import "./index.css"
import "./index.less"
// webpack.config.js
// 基础配置
// 项目根目录执行指令 webpack
在build文件包下创建index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./built.js"></script>
</head>
<body>
<div> <p class="title">我爱中国</p></div>
</body>
</html>
创建webpack.config.js文件,写入配置信息。
// 项目的根目录 webpack.config.js
// config 配置
// 这个文件就是配置webpack的
// 只是webpack干哪些活,(运行 webpack指令的时候,会加载这里面的配置)
// 构建工具都是基于node js平台运行
// 模块化采用common JS规范
// 配置的主要就是5大核心
module.exports={
// 入口
entry:"./src/index.js",
// 出口
output:{
// 输出文件的名字
filename:"built.js",
// 输出文件的路径
path:__dirname+"/build"
},
module:{
rules:[
// 详细的loder配置
{
// 匹配文件
// 哪种类型的文件 用这个Loder翻译
test:/\.css$/,
// 使用哪些loder来解析 /翻译
// loader加载顺序,从上到下的
use:[
// 创建style标签 将js中的样式资源插入,添加到head中生效
"style-loader",
// 将css文件编译成common js 模块加载到js中
"css-loader"
]
},
// less相关的
{
test:/\.less$/,
use:[
"style-loader",
"css-loader",
// 将less 编译成css
"less-loader"
]
},
]
},
// 插件
plugins:[
// 详细的 plugins 配置
],
// 模式 production生产
mode:"development"
}
如果需要打包后自动生成一个index.html文件,要在webpack.config.js文件插件中设置
plugins:[
// 详细的 plugins 配置
// 打包后自动生成一个index.html文件
// 如果不配置模板生成的index.html
new HtmlWebpackConfig({
// 指定html文件模板位置
// 而且还会自动引入 入口文件
// 打包后会带入这个模板内容
template:"./src/index.html"
})
]
如果需要设置图片 在webpack.config.js文件的rules文件中设置
module: {
rules: [
// less相关的
{
test: /\.less$/,
// use 使用多个loader
use: [
"style-loader",
"css-loader",
// 将less 编译成css
"less-loader"
]
},
// 图片 loader 翻译
{
test: /\.(jpg|png|gif)$/,
// 只是用一个loader
loader: "url-loader",
// 配置项
options: {
// 8M以下的 用base64图片
// 会把图片转为base64 字符串
// 优点:减少请求数量 减轻服务压力
// 相同的图片只有一张
// 缺点 图片提交会增大(请求速度会变慢)
limit: 8 * 1024,
// 配置图片的名字
// 取到哈希 hash 值得前10位 拼接上扩展名
name:"[hash:10].[ext]"
}
},
// 配置loader 用来翻译html里面的图片
{
test: /\.html$/,
// 处理html文件当中的img图片(负责引入,再有url-loader解析)
loader:"html-loader"
},
]
}
需要自动刷新,需要配置服务
// 配置开发环境服务器
// 自动编译 自动打开浏览器 自动刷新
// 只会在内存中编译打包 不会有任何输出
// 启动指令 npx webpack-dev-server
devServer:{
// 基础目录配置
contentBase:__dirname+"/build",
// 启动gzip压缩
compress:true,
// 默认端口3000
port:3000,
// 是否打开浏览器
open:true
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。