当前位置: 首页 > news >正文

[webpack] 基本配置 (一)

文章目录

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

1.基本介绍

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

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

2.功能介绍

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

3.简单使用

3.1 文件目录和内容

在这里插入图片描述

1.count.js

export default function count(x, y){return x + y;
}

2.sum.js

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

3.main.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

npm init -y

在这里插入图片描述

2.下载依赖

npm i webpack webpack-cli -D

3.3 启动webpack

1.开发模式

npx webpack ./src/main.js --mode=development

2.生产模式

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

  • ./src/main.js: 指定 Webpackmain.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:

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

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

4.2 基本使用

// 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", // 开发模式
};
npx webpack

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/116707.html

相关文章:

  • 模板学堂|SQL数据集动态参数使用场景及功能详解
  • Wlan——射频和天线基础知识
  • 前端实习周记第三周周记
  • Android 13 Launcher界面——移除Launcher的删除和卸载功能
  • 深度学习:使用卷积神经网络CNN实现MNIST手写数字识别
  • docker search 镜像报错: connect: no route to host (桥接模式配置静态IP)
  • 【VUE】[Violation] Added non-passive event listener to a scroll-blocking...
  • runit-docker中管理多个服务
  • Intune 应用程序管理
  • Oracle DB 安全性 : TDE HSM TCPS Wallet Imperva
  • leetcode27—移除元素
  • flask---》更多查询方式/连表查询/原生sql(django-orm如何执行原生sql)/flask-sqlalchemy
  • Chromium内核浏览器编译记(三)116版本内核UI定制
  • LoRaWan网关设计架构介绍
  • vue 全局状态管理(简单的store模式、使用Pinia)
  • ORACLE和MYSQL区别
  • tensorflow 1.14 的 demo 02 —— tensorboard 远程访问
  • Spring中Bean的循环依赖问题
  • 若依管理系统后端将 Mybatis 升级为 Mybatis-Plus
  • 剪切、复制、粘贴事件
  • Redis储存结构
  • 使用logback异步打印日志
  • ArcGIS Pro暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用
  • Rabbitmq的消息确认
  • 在飞机设计中的仿真技术
  • (2023Arxiv)Meta-Transformer: A Unified Framework for Multimodal Learning
  • 解决Python读取图片路径存在转义字符
  • Windows 安装 pandoc 将 jupyter 导出 pdf 文件
  • 混合云环境实现K8S可观测的6大策略
  • 音视频 FFmpeg命令行搭建