什么是Webpack?(详细介绍)

简介: 什么是Webpack?(详细介绍)


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

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

  • 入口  出口  加载器  * 插件

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

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

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

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

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打包之后运行)

作用:

export和export 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());


//····························
//使用export default
var text="你坏";
export default text;
//使用export default
import model from "./model"
console.log(model);

相关文章
|
3月前
|
缓存 JavaScript
webpack之SplitChunksPlugin
webpack之SplitChunksPlugin
38 0
|
3月前
|
前端开发 JavaScript
webpack使用
webpack使用
|
3月前
|
JSON JavaScript 前端开发
Webpack详解(二)
Webpack详解
149 0
|
3月前
|
前端开发 JavaScript Linux
|
8月前
|
JavaScript 前端开发
webpack
webpack
49 0
webpack
|
3月前
|
前端开发 JavaScript 测试技术
对Webpack的理解
对Webpack的理解
34 0
|
12月前
|
JSON 缓存 前端开发
webpack相关详细讲解。
webpack相关详细讲解。
|
缓存 前端开发 JavaScript
浅谈webpack
浅谈webpack
95 0
|
JavaScript 前端开发
从了解到使用webpack
Webpack本质上是一种前端资源编译,打包工具
81 0
|
前端开发 JavaScript
关于 Webpack 的介绍,什么是 Webpack?
Webpack 是一款现代化的前端构建工具,它可以将你的项目中的多个 JavaScript 模块打包成一个或多个 bundle 文件,同时还可以处理各种类型的静态资源,比如 CSS、图片等等。 Webpack 最初是由 Tobias Koppers 开发的,目前已经成为了前端开发中使用最广泛的构建工具之一。
131 0