Actualización
This commit is contained in:
75
plugin/mindmap/edit-mindmap/build/lib/combine.js
Normal file
75
plugin/mindmap/edit-mindmap/build/lib/combine.js
Normal file
@@ -0,0 +1,75 @@
|
||||
var path = require('path'),
|
||||
fs = require('fs');
|
||||
|
||||
var //项目名
|
||||
prefix,
|
||||
//依赖关系
|
||||
dep,
|
||||
//项目路径
|
||||
jsDir;
|
||||
|
||||
var sort = function(src) {
|
||||
if(!dep) {
|
||||
console.log('Please call combine.init method first!');
|
||||
return;
|
||||
}
|
||||
|
||||
var scripts = [],
|
||||
visited = {},
|
||||
visit = function(node) {
|
||||
if(node in visited) {
|
||||
return;
|
||||
}
|
||||
visited[node] = true;
|
||||
|
||||
var requires = dep.getRequiresByPath(node);
|
||||
|
||||
for(var require in requires) {
|
||||
visit( dep.getPathByName(require) );
|
||||
}
|
||||
|
||||
scripts.push(node);
|
||||
};
|
||||
|
||||
visit(src);
|
||||
|
||||
return scripts;
|
||||
};
|
||||
|
||||
var deleteRequire = function(code) {
|
||||
var reg = prefix + '\\.require\\([\'\"]([-_\\.a-zA-Z0-9]+)[\'\"]\\);[\n\r]*';
|
||||
reg = new RegExp(reg, 'g');
|
||||
return code.replace(reg, '');
|
||||
};
|
||||
|
||||
exports.init = function(dependency, config) {
|
||||
dep = dependency;
|
||||
jsDir = config.getJsDir();
|
||||
prefix = config.getProjectName();
|
||||
};
|
||||
|
||||
exports.combineCode = function(src) {
|
||||
if(!src) {
|
||||
console.log('Please input a file');
|
||||
return;
|
||||
}
|
||||
|
||||
src = path.relative(jsDir, src).replace(/\\/g, '/');
|
||||
var scripts = sort(src), code = [];
|
||||
|
||||
for(var i = 0, l = scripts.length; i < l; i++) {
|
||||
src = path.join(jsDir, scripts[i]);
|
||||
var content = fs.readFileSync(src).toString();
|
||||
code.push( deleteRequire(content) );
|
||||
}
|
||||
|
||||
return code.join('\n\n');
|
||||
};
|
||||
|
||||
exports.combineFile = function(src, output) {
|
||||
var content = exports.combineCode(src);
|
||||
fs.writeFileSync(output, content);
|
||||
console.log('success! -> Combined File : ' + src);
|
||||
};
|
||||
|
||||
exports.combine = function() {};
|
||||
Reference in New Issue
Block a user