- 不要使用全局变量。
var async = reuqire('async')
在需要的地方使用。
module.exports
在您需要的特定模块中使用。
- 使用类似browserify的东西来生成单个js。
- Uglify(或使用名为uglifyify的 browserify 转换)
比如最简单的形式(不使用uglifyify)
$ browserify run.js | uglifyjs -c > run.min.js
请注意,如果您使用自己的代码,例如common.js
,您应该要求它使用相对路径,var common = require("./common")
.
我建议你使用导出语法:
// common.js code
exports.isAuthenticated = function() {
//...
return false;
};
当然,就像使用 async.js 一样使用它:
//run.js
var common = require("./common");
var async = require("async")
async.series([function () {
common.isAuthenicated();
}], function () {
console.log("done");
});
假设common.js
&run.js
都驻留在同一个目录中。
相关问题:如何使用 browserify 获得缩小输出?
旁注
您async.series
在问题中使用的方式没有真正的优势。你可能只是:
//run.js
var common = require("./common");
common.isAuthenicated();
console.log("done");
在 Async 系列中,您通常调用异步函数:
async.series([
function(callback){
// do some stuff ...
callback(null, 'one');
},
function(callback){
// do some more stuff ...
callback(null, 'two');
}
],
// optional callback
function(err, results){
// results is now equal to ['one', 'two']
});
所以,我希望看到类似的东西:
// common.js code
exports.isAuthenticated = function(callback) {
//...
callback(null, false);
};
接着
//run.js
var common = require("./common");
var async = require("async")
async.series([common.isAuthenicated], function (err, results) {
console.log("done with", results[0]);
});
我通常更喜欢不同的“语法”
// an example using an object instead of an array
async.series({
one: function(callback){
setTimeout(function(){
callback(null, 1);
}, 200);
},
two: function(callback){
setTimeout(function(){
callback(null, 2);
}, 100);
}
},
function(err, results) {
// results is now equal to: {one: 1, two: 2}
});
但这是你的电话。异步示例取自https://github.com/caolan/async#seriestasks-callback