早期JS开发的弊端
早期的JS开发一般都是下载好的js文件直接通过
npm包管理的出现
npm包管理工具是随着node.js的出现而出现的。node.js时在服务端的js运行环境,使用npm进行包管理。npm可以理解成maven或者gradle一类的产品,就是管理包依赖的。使用npm可以很方便维护包依赖,更新包。
>
webpack的应用
但是,以上的方式,文件必须被动态地加载,或者同步地加载(减慢执行速度)或者异步地加载(不能保证时间顺序)。这就是模块打包器随之出现的原因。JavaScript 模块打包器是一个能在代码构建过程(有文件系统权限)绕过这个问题并打包生产出兼容于浏览器的生产版本(不再需要有文件系统权限)的工具。在这个例子中,我们需要一个模块打包器,找到所有 require 语句(它在浏览器端的 JavaScript 中是非法的)并把它们替换成想 require 的文件实际的内容。最终结果是一个打包后的 JavaScript 文件(没有 require 语句)!
使用新的语言特性并编译代码(babel)
Babel 不是一门新语言而是一个编译器,把下一代的 JavaScript 中还未在所有浏览器实现的新特性(ES6 和之后)编译成更早更兼容的 JavaScript( ES5) 。TypeScript 是一门完全等同于下一代的 JavaScript 的语言,但加入了可选的静态类型。很多人选择 babel 因为更贴近普通的 JavaScript。
自动构建工具-npm脚本
2013 年,Grunt 是最流行的前端构建工具,Gulp 在不久后紧跟其后。它们都依赖一些集成了其他命令行工具的插件。最近最流行的选择似乎是使用 npm 内建的脚本功能自身,不使用插件而是直接使用其他的命令行工具。
参考文章
https://zhuanlan.zhihu.com/p/31044340