简介
Webpack是一个前端资源加载/打包工具,它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源,从下图中可以看出,Webpack可以将多种静态资源js,css,less转换成一个静态文件,减少了页面的请求
安装
-
全局安装
1
npm install webpack@3.6.0 -g
-
安装后查询版本号
1
webpack -v
初始化项目
-
创建webpack文件夹
1
npm init -y
-
创建src文件夹
-
src下创建common.js
1 2 3 4 5 6 7
// 输出 exports.info = (str) => { // 往控制台输出 console.log(str); // 往浏览器输出 document.write(str); };
-
src下创建utils.js
1
exports.add = (a, b) => a + b;
-
src下创建main.js
1 2 3 4 5
// 导入模块 import utils from "./utils.js"; import common from "./common.js"; common.info("Hello World" + utils.add(1, 2));
-
在根目录下创建webpack.config.js配置打包规则
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// 导入path模块 const path = require("path"); // 定义JS打包的规则 module.exports = { // 入口函数从哪里开始进行编译打包 entry: "./src/main.js", // 编译成功以后把内容输出到哪里去 output: { // 定义输出的指定的目录,_dirname当前项目根目录,生成一个dist文件 path: path.resolve(__dirname, "./dist"), // 合并的js文件存储在dist/bundule。js文件中 filename: "bundle.js", }, };
-
终端执行webpack命令,会发现根目录下出现dist目录
-
在dist目录下新建index.html
1 2 3 4 5 6 7 8 9 10 11 12
<!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>测试</title> </head> <body> <script src="bundle.js"></script> </body> </html>
-
浏览器中查看index.html
CSS打包
-
安装style-loader和css-loader
1 2 3
# WebPack本身只能处理JS模块,如果要处理其他类型的文件,就需要使用loader进行转换 # Loader可以理解为是模块和资源的转换器 # css-loader是将css装载到JS,style-loader是让JS认识css
1
npm install --save-dev style-loader css-loader
-
修改webpack.config.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14
module.exports = { output:{ }, module: { rules: [ { // 把项目中所有的.css结尾的文件进行打包 test: /\.css$/, use: ["style-loader", "css-loader"], }, ], }, }
-
在src文件夹创建style.css
1 2 3
body{ background:pink; }
-
修改main.js,在第一行引入style.css
1
import style from "./style.css";
-
修改package.json,增加命令
1 2 3
"scripts": { "dev": "webpack -w" },
-
执行命令,编译
1
npm run dev
-
浏览器中查看index.html,看看效果