w3cTrain

Keep Moving

Node编译过程

在Node的每个文件模块中都存在这require,exports,module这几个变量,我们可以直接使用,但是看不到它的声明?为什么?
事实上,Node对获取来的JavaScript进行了头尾包装,一个正常的模块会包装成这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// gulpfile.js

var gulp = require('gulp');
gulp.task('help', function() {
console.log('----------------------------------------');
console.log('gulp 开发模式');
console.log('gulp build 部署模式');
console.log('----------------------------------------');
});

=>

(function (exports, require, module, __filename, __dirname) {
var gulp = require('gulp');
gulp.task('help', function() {
console.log('-----------------------------------');
console.log('gulp 开发模式');
console.log('gulp build 部署模式');
console.log('-----------------------------------');
});
});
Read More...
1