magix-combine
Version:
合并Magix View的html,js,css成一个js文件,并检测html,js,css中可能存在的问题
46 lines (45 loc) • 1.25 kB
JavaScript
/*
文件依赖信息对象,如index.js中@了index.css,则index.css被修改时,我们要编译index.js,即被依赖的模块变化要让有依赖的模块编译一次
*/
let fileDependencies = {};
let context;
//添加文件依赖关系
let addFileDepend = (file, dependFrom, dependTo) => {
if (file != dependFrom) {
let list = fileDependencies[file];
if (!list) {
list = fileDependencies[file] = Object.create(null);
}
list[dependFrom] = dependTo;
}
};
//运行依赖列表
let runFileDepend = file => {
let list = fileDependencies[file];
let promises = [];
if (list) {
for (let p in list) {
promises.push(context.process(p, list[p], true));
}
}
return Promise.all(promises);
};
//移除文件依赖
let removeFileDepend = file => {
delete fileDependencies[file];
};
module.exports = {
setContext(ctx) {
context = ctx;
return ctx;
},
inDependents(file) {
return fileDependencies.hasOwnProperty(file);
},
getDependents(file) {
return fileDependencies[file];
},
removeFileDepend: removeFileDepend,
runFileDepend: runFileDepend,
addFileDepend: addFileDepend
};