js的构建,真是让人烦死了。概念层出不穷,实现方法变化多样,而且所有这些东西,都是因为js出生的时候给他的定位,和现在js的任务完全不一样,每项工具,每个知识点,都是为了给他自身打补丁而生的。当然也可以看做是js是个能自我演进的工具。
js现在也需要进行构建,我理解就是把多个js代码合并成一个大文件,然后浏览器加载,并在客户端解释。
1,Node,npm
wiki上说Node最初发布于2009,在V8 chrome内核上封装了消息机制,异步IO等功能,可以让js在服务端运行。V8最早是在2008年发布。那个时候也是iOS,Android刚刚开始流行的时候。
1 | npm init -y |
2,ES6和模块化
js的es6就是出了一大堆新语法,由浏览器支持js可以实现的新功能。本来是让工具更好用,但是明显增加了很多学习成本。
模块化,js以文件为模块,形成依赖关系,依次加载。这对于C语言来说,这是非常简单的事情,怎么到了js变得这么复杂,事情本身不复杂,但是需要若干工具配合才能完成这件事情,每个工具有一大套配置方法,使用规则。
1 |
|
1 | var browserify = require('browserify'); //node api方式 |
browserify大部分被webpack代替
4,gulp
任务自动化的工具。通过在项目根目录的 gulpfile.js文件,执行任务
1 | // 代码示例 |
5,Babel
Babel是js编译器,可以把所有新语法特性的js转换为es5的语法。
1 | ./node_modules/.bin/babel src --out-dir lib #命令行方式 |
API方式
1 | const babel = require("@babel/core"); |
配置文件.babelrc