[webpack] 基本配置 (一)

文章目录

      • 1.基本介绍
      • 2.功能介绍
      • 3.简单使用
        • [3.1 文件目录和内容](#3.1 文件目录和内容)
        • [3.2 下载依赖](#3.2 下载依赖)
        • [3.3 启动webpack](#3.3 启动webpack)
      • 4.基本配置
        • [4.1 五大核心概念](#4.1 五大核心概念)
        • [4.2 基本使用](#4.2 基本使用)

1.基本介绍

  1. Webpack 是一个静态资源打包工具。它会以一个或多个文件作为打包的入口, 将我们整个项目所有文件编译组合成一个或多个文件输出出去。

  2. 输出的文件就是编译好的文件, Webpack 输出的文件叫做 bundle。

2.功能介绍

  1. 开发模式: 仅能编译 JS 中的 ES Module 语法。
  2. 生产模式: 能编译 JS 中的 ES Module 语法, - 还能压缩 JS 代码。

3.简单使用

3.1 文件目录和内容

1.count.js

js 复制代码
export default function count(x, y){
    return x + y;
}

2.sum.js

js 复制代码
export default function sum(...args) {
  return args.reduce((p, c) => p + c, 0);
}

3.main.js

js 复制代码
import count from "./js/count";
import sum from "./js/sum";

console.log(count(2, 1));
console.log(sum(1, 2, 3, 4));

3.2 下载依赖

1.初始化package.json

bash 复制代码
npm init -y

2.下载依赖

bash 复制代码
npm i webpack webpack-cli -D

3.3 启动webpack

1.开发模式

bash 复制代码
npx webpack ./src/main.js --mode=development

2.生产模式

bash 复制代码
npx webpack ./src/main.js --mode=production
  • npx webpack: 是用来运行本地安装 Webpack 包的。

  • ./src/main.js: 指定 Webpack 从 main.js 文件开始打包, 不但会打包 main.js, 还会将其依赖也一起打包进来。

  • --mode=xxx: 指定环境。

默认 Webpack 会将文件打包输出到 dist 目录。

index.html引用dist下的man.js

4.基本配置

4.1 五大核心概念

  1. entry(入口): 指示 Webpack 从哪个文件开始打包。
  2. output(输出): 指示 Webpack 打包完的文件输出到哪里去, 如何命名等。
  3. loader(加载器): webpack 本身只能处理 js、json 等资源, 其他资源需要借助 loader。
  4. plugins(插件): 扩展 Webpack 的功能。
  5. mode(模式): 开发模式(development), 生产模式(production)。

webpack.config.js:

js 复制代码
module.exports = {
  // 入口
  entry: "",
  // 输出
  output: {},
  // 加载器
  module: {
    rules: [],
  },
  // 插件
  plugins: [],
  // 模式
  mode: "",
};

Webpack 是基于 Node.js 运行的, 所以执行commonJS规范。

4.2 基本使用

js 复制代码
// Node.js的核心模块,专门用来处理文件路径
const path = require("path");

module.exports = {
  // 入口
  // 相对路径和绝对路径都行
  entry: "./src/main.js",
  // 输出
  output: {
    // path: 文件输出目录,必须是绝对路径
    // path.resolve()方法返回一个绝对路径
    // __dirname 当前文件的文件夹绝对路径
    path: path.resolve(__dirname, "dist"),
    // filename: 输出文件名
    filename: "main.js",
  },
  // 加载器
  module: {
    rules: [],
  },
  // 插件
  plugins: [],
  // 模式
  mode: "development", // 开发模式
};
bash 复制代码
npx webpack
相关推荐
Hilaku5 分钟前
Event Loop 这篇你看完就不用再看别的了!
前端·javascript·程序员
恋猫de小郭36 分钟前
Flutter 下 AOT 一个你怎么都想不出来的 Bug ,JIT 正常的计算,在 AOT 居然算错了
android·前端·flutter
晓得迷路了1 小时前
栗子前端技术周刊第 153 期 - Vitest 5.1、Remix v3.2、Node.js 27 Alpha...
前端·javascript·vite
Moment1 小时前
Harness Engineering 为什么是 AI Coding 的工程底座 ❓❓❓
前端·后端·面试
风骏时光牛马2 小时前
生成一个AI面试复盘标题,只需要一个标题,不需要其他的任何文本。
前端
红尘散仙11 小时前
谁说终端只能敲键盘?我用 Rust 给小说阅读器加上了鼠标
前端·后端·rust
陈随易12 小时前
C++26 草案被否,二十八年来头一回
前端·后端·程序员
ZhengEnCi12 小时前
Agent 工具怎么折叠海量输出才「爽」:Trae、Claude Code 的渐进式披露设计原理
前端·agent
IT_陈寒15 小时前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端