builder-isv
Version:
ISV 模块本地预览与云构建器
67 lines (58 loc) • 1.52 kB
JavaScript
/**
* @author 龙喜<xiaolong.lxl@alibaba-inc.com>
* @description Module
*/
'use strict';
const path = require('path');
const Base = require('./base');
module.exports = class Module extends Base {
/**
* 模块信息
* @param workSpace 模块工作空间
* @param moduleType 模块类型
* @param moduleName 模块名称
* @param invokeType 调用类型 preview | build
*/
constructor(workSpace, moduleType, moduleName, invokeType) {
super(workSpace, invokeType);
if (invokeType === Base.INVOKE_TYPE_BUILD) {
this.moduleName = moduleName;
this.modulePath = workSpace;
} else {
this.moduleType = moduleType;
this.moduleName = moduleName;
this.type = moduleName;
this.modulePath = path.join(this.workSpace, moduleType, moduleName);
}
}
/**
* 获取模块信息
*/
get packageInfo() {
if (!this.__packageInfo) {
try {
this.__packageInfo = this.utils.JSONStore.create(path.join(this.modulePath, 'package.json'));
} catch (e) {
throw {
message: 'package.json 解析失败:' + e.message
};
}
}
return this.__packageInfo;
}
/**
* 获取 abc 信息
*/
get abcInfo() {
if (!this.__abcInfo) {
try {
this.__abcInfo = this.utils.JSONStore.create(path.join(this.modulePath, 'abc.json'));
} catch (e) {
throw {
message: 'abc.json 解析失败:' + e.message
};
}
}
return this.__abcInfo;
}
};