什么是Webpack?(详细介绍)

webpack是一个模块打包工具,它将项目中的JavaScript和其他浏览器不支持的扩展语言转换成可执行的代码。核心概念包括入口、出口、加载器和插件。通过配置文件实现自动化编译。与Grunt和Gulp不同,webpack更专注于模块化。ES6模块与CommonJS的主要区别在于导出和导入方式,以及是否允许修改导出的变量值。webpack使得项目结构清晰,优化前端开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Webpack​

webpack主要是打包,所以其核心存在两个部分,入口出口,你可以把webpack加工想象成香肠加工厂,就是活猪进去,香肠出来的那种,但是如果每次加工都需要员工亲力亲为,那多麻烦那,所以我们考虑到了自动化配置。webpack存在功能类似的配置文件,让webpack通过配置,全自动的执行我们需要的编译操作。
​ ​webpack分成四个部分,期中最核心的就是入口出口,当然在入口和出口配置的同时我们还需要一些加载器插件这就是我们所谓的webpack配置文件。这个配置文件我们习惯把其命名为webpack.config.js ,还有webpackfile.js

​ 总结一下,webpack共分为四个部分,这个概念一定要记好,本堂课就是围绕这四个配置进行展开的 :

* 入口  * 出口  * 加载器  * 插件

什么是webpack?

WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(ScssTypeScript等),并将其转换和打包为合适的格式供浏览器使用。

webpack能干什么?

根据入口文件的依赖,加载所有模块js,然后合并成一个js;标准且纯粹的模块化打包工具 : 依赖一个文件为入口打包所有依赖为当前浏览器可用的代码。

WebPack和Grunt以及Gulp相比有什么区别?

Webpack和另外两个并没有太多的可比性,Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具。

1.GruntGulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,工具之后可以自动替你完成这些任务。

2.Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。

webpack使用ES6模块语法

CommonJS与ES6模块区别:

ES6标准发布后,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。
commonjs模块和es6模块最主要的区别:
       1.commonjs模块是拷贝(能修改其值),es6模块是引用(只存在只读状态,不能修改其变量值)
       2.CommonJS模块是运行时加载,ES6模块是编译时输出接口

语法区别:

CommonJS:使用node运行js

//暴露数据的页面
var num = 3; 
function fun() { 
return  "你好";
} 
module.exports = { 
fun,
num
}; 
//引用模块的页面
var demo=require("./demo")
console.log(demo.fun());
console.log(demo.num);

//------------exports暴露-----------------------
//暴露数据的页面
exports.num = 3;
exports.fun=function(){
return "你好";
}
//引用模块的页面
var demo=require("./demo")
console.log(demo.num);
console.log(demo.fun());

ES6模块 (稍后使用webpack打包之后运行)

作用:

exportexport default实现的功能相同,即:可用于导出(暴露)常量、函数、文件、模块等,以便其他文件调用。

区别:

1、export导出多个对象,export default只能导出一个对象

2、export导出对象需要用{ },export default不需要{ },如:

//暴露模块export
export let num = 3;
export function fun() {
return "你好"
}
//使用模块
import { num,fun } from './demo';
console.log(num); 
console.log(fun());

 <!-- 页面引用 -->
 <script type="module" src="js.js"></script>
//····························
//使用export default
var text="你坏";
export default text;
//使用export default 
import model from "./model"
console.log(model);

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赫兹/Herzz

如果我的博文帮助到您请打赏支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值