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

Webpack5入门到原理2:基本使用

Webpack 是一个静态资源打包工具。

它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输出出去。

输出的文件就是编译好的文件,就可以在浏览器段运行了。

我们将 Webpack 输出的文件叫做 bundle。

功能介绍

Webpack 本身功能是有限的:

开发模式:仅能编译 JS 中的 ES Module 语法

生产模式:能编译 JS 中的 ES Module 语法,还能压缩 JS 代码

开始使用

1. 资源目录

webpack_code # 项目根目录(所有指令必须在这个目录运行)
    └── src # 项目源码目录
        ├── js # js文件目录
        │   ├── count.js
        │   └── sum.js
        └── main.js # 项目主文件

2. 创建文件

  • count.js
export default function count(x, y) {return x - y;
}
  • sum.js
export default function sum(...args) {return args.reduce((p, c) => p + c, 0);
}
  • 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. 下载依赖

打开终端,来到项目根目录。运行以下指令:

  • 初始化package.json
npm init -y

此时会生成一个基础的 package.json 文件。

需要注意的是 package.json 中 name 字段不能叫做 webpack, 否则下一步会报错

  • 下载依赖
npm i webpack webpack-cli -D

4. 启用 Webpack

  • 开发模式
npx webpack ./src/main.js --mode=development
  • 生产模式
npx webpack ./src/main.js --mode=production

npx webpack: 是用来运行本地安装 Webpack 包的。

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

--mode=xxx:指定模式(环境)。

5. 观察输出文件

默认 Webpack 会将文件打包输出到 dist 目录下,我们查看 dist 目录下文件情况就好了

小结

Webpack 本身功能比较少,只能处理 js 资源,一旦遇到 css 等其他资源就会报错。

所以我们学习 Webpack,就是主要学习如何处理其他资源。

相关文章:

  • System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
  • Flash读取数据库中的数据
  • Hovel trump:
  • 第二章第10节:EXCEL :REPLACE函数 SUBSTITUTE函数
  • GPT帮我快速解决工作上的问题案例
  • Vue-Clipboard3:轻松实现复制到粘贴板功能
  • 前端基础:回顾es6相关知识
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • docker使用Dockerfile制做容器(以hyperf为列,开机启动)
  • SpiderFlow爬虫平台漏洞利用分析(CVE-2024-0195)
  • 基于双向长短期神经网络的客流量预测,基于bilstm的客流量预测
  • [MySQL]基础的增删改查
  • Java代码审计Shiro反序列化CB1链source入口sink执行gadget链
  • P2717 寒假作业 CDQ
  • GitHub Copilot 与 OpenAI ChatGPT 的区别及应用领域比较
  • [译]Python中的类属性与实例属性的区别
  • bearychat的java client
  • C++类中的特殊成员函数
  • CSS居中完全指南——构建CSS居中决策树
  • HTML-表单
  • HTML中设置input等文本框为不可操作
  • interface和setter,getter
  • Java-详解HashMap
  • nfs客户端进程变D,延伸linux的lock
  • PAT A1092
  • python_bomb----数据类型总结
  • Python十分钟制作属于你自己的个性logo
  • Spark学习笔记之相关记录
  • 初识 beanstalkd
  • 力扣(LeetCode)56
  • 批量截取pdf文件
  • 容器服务kubernetes弹性伸缩高级用法
  • 小李飞刀:SQL题目刷起来!
  • 新手搭建网站的主要流程
  • 一道闭包题引发的思考
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • const的用法,特别是用在函数前面与后面的区别
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​力扣解法汇总946-验证栈序列
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (独孤九剑)--文件系统
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (四)JPA - JQPL 实现增删改查
  • (小白学Java)Java简介和基本配置
  • (转)shell调试方法
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (转)项目管理杂谈-我所期望的新人
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • . Flume面试题
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)