Featured image of post WebPack入门

WebPack入门

简介

Webpack是一个前端资源加载/打包工具,它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源,从下图中可以看出,Webpack可以将多种静态资源js,css,less转换成一个静态文件,减少了页面的请求

安装

  1. 全局安装

    1
    
    npm install webpack@3.6.0 -g
    
  2. 安装后查询版本号

    1
    
    webpack -v
    

初始化项目

  1. 创建webpack文件夹

    1
    
    npm init -y
    
  2. 创建src文件夹

  3. src下创建common.js

    1
    2
    3
    4
    5
    6
    7
    
    // 输出
    exports.info = (str) => {
      // 往控制台输出
      console.log(str);
      // 往浏览器输出
      document.write(str);
    };
    
  4. src下创建utils.js

    1
    
    exports.add = (a, b) => a + b;
    
  5. 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));
    
  6. 在根目录下创建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",
      },
    };
    
  7. 终端执行webpack命令,会发现根目录下出现dist目录

  8. 在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>
    
  9. 浏览器中查看index.html

CSS打包

  1. 安装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
    
  2. 修改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"],
          },
        ],
      },
    }
    
  3. 在src文件夹创建style.css

    1
    2
    3
    
    body{
    	background:pink;
    }
    
  4. 修改main.js,在第一行引入style.css

    1
    
    import style from "./style.css";
    
  5. 修改package.json,增加命令

    1
    2
    3
    
    "scripts": {
        "dev": "webpack -w"
    },
    
  6. 执行命令,编译

    1
    
    npm run dev
    
  7. 浏览器中查看index.html,看看效果