前端有必要学习webpack吗?

必须必啊

WebPack其实不算是成为前端工程师必学的技能知识模块,它是一个工具,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。

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

现在好多网页有着很多的应用,所以它们的JavaScript代码比较复杂,当然也有着很多的依赖包,所以为了简化开发的复杂度,前端就出现了很多比较好的实践方法

模块化,让我们可以把复杂的程序细化为小的文件;

比如:TypeScript这种在JavaScript基础上拓展的开发语言:使我们能够实现目前版本的,JavaScript不能直接使用的特性,并且之后还能能装换为JavaScript文件使浏览器可以识别;

这些改进确实大大的提高了我们的开发效率,但是利用它们开发的文件往往需要进行额外的处理才能让浏览器识别,而手动处理又是非常繁琐的,这就为打包

类的工具的出现提供了需求。

介绍几款常用打包工具,大家可以根据自己的需要择优选取:

打包工具只是一向可以很好的管理html css javascript,使用可以锦上添花,不使用也没关系。如果你是一位偏向于后端程序员,了解熟悉即可,对于前端程序员来说,现在打包工具基本是个基本技能,你需要多多擅用。

在这里 介绍 4 款主流的打包工具:grunt gulp webpack rollup

Grunt :最老牌的打包工具,它运用配置的思想来写打包脚本,一切皆配置,所以会出现比较多的 配置项,诸如option,src,dest等等。而且不同的插件可能会有自己扩展字段,认知成本高,运用的时候需要明白各种插件的配置规则。

Gulp:用代码方式来写打包脚本,并且代码采用流式的写法,只抽象出了gulp.src gulp.pipegulp.dest gulp.watch 接口,运用相当简单。更易于学习和使用,使用gulp的代码量能 ,比grunt少一半左右。

Webpack: 是模块化管理工具和打包工具。通过 loader 的转换,任何形式的资源都可以视作模 块,比如 CommonJs 模块、AMD 模块、ES6 模块、CSS、图片等。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。它定位是模块打包器,而 Gulp/Grunt 属于构建工具。Webpack 可以代替 Gulp/Grunt 的一些功能,但不是一个职能的工具,可以配合使用。

Rollup: tree-shaking生成更简洁、更简单的代码。一般而言,对于应用使用 Webpack,对于类库使用 Rollup;需要代码拆分(Code Splitting),或者很多静态资源需要处理,再或者构建的项目需要引入很多 CommonJS 模块的依赖时,使用 webpack。代码库是基于 ES6 模块,而且希望代码能够被其他人直接使用,使用 Rollup。