webpack学习从零到亿过程

发布时间 2023-10-18 10:00:13作者: 朱自清的散文集

webpack 学习从零到亿过程

  1. 我想初始化一个 node 项目
  2. npm init
  3. 安装 webpack 包 npm install webpack webpack-cli --save-dev
  4. 写 webpack 配置文件 config/webpack.dev.config.js
  5. 安装了 path npm i path -s -d 并新建了 webpack.dev.config.js 写入下面简单配置
const path = require("path");
module.exports = {
  entry: "./src/index.js", // 入口文件路径
  output: {
    path: path.resolve(__dirname, "../", "dist"), // 输出目录路径
    filename: "[name]-[hash]-main.js", // 输出文件名
  },
  mode: "production",
};
  1. 在 package.json 中添加下面执行脚本命令
    "dev": "webpack-cli --config config/webpack.dev.config.js"
  1. 终端运行npm run dev 出现 dist 文件和打包结果

  2. 安装了 npm install clean-webpack-plugin --save-dev 每次执行之后相对打包结果进行清空

  3. package.json 中添加如下配置

const { CleanWebpackPlugin } = require('clean-webpack-plugin');

  plugins: [
    new CleanWebpackPlugin(),
  ],
  1. 在此执行npm run dev 可以发现里面的 dist 目录每次都会被删除之后再去添加

  2. 打包工作完成之后,我想使用 webpack 启动一个服务去访问我的资源要怎么做?

  3. 首先我们安装 npm install -D webpack-dev-server 然后我们需要去 package.json 中添加一个新的命令

    "dev2": "webpack serve --config config/webpack.dev.config.js"
  1. 没错是同一个配置文件,你也可以换一个新的文件,在原有的基础上我们需要添加 devserver
{
// 其他配置,
  devServer: {
    static: {
      directory: path.join(__dirname,'../', 'public'),
    },// 服务器根目录
    port: 3000, // 服务器端口号
    open: true, // 自动打开浏览器
  },
}
  1. 这个 static 为 webpack 5.* 版本的哈 这意思就是启动这个服务之后,将这个静态资源加载进去,了解 nginx 配置的人都明白,当我们启动一个 nginx,我们可以访问我们 nginx.config 文件中的那些静态资源,原理应该和这个差不多,我们先去根目录下创建一个 public 文件并写一个 index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    我是运行态
  </body>
</html>
  1. 这样我们执行npm run dev2 会发现自动打开http://localhost:3000/ 端口且内容都已展示

❓:我们想将打包之后的 js 也加载进去,怎么去做呢?
?:我们可以将我们打包之后的 js 文件输出文件名写为固定的 main.js,即如下:

 {
    output: {
        path: path.resolve(__dirname, 'dist'), // 输出目录路径
        filename: 'main.js', // 输出的JavaScript文件名
      }
 }