框架源码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

56 lines
2.0 KiB

const path = require('path');
const fs = require('fs')
const fileName = 'tisplatform.json';
function loadSdkPlugin(options) {
this.options = options;
}
loadSdkPlugin.prototype.apply = function (comppiler) {
let sdkPath = this.options.sdkPath;
let jsonPath = this.options.jsonPath;
let sdks = {};
let json = {};
comppiler.plugin('done',function (compilation,callback) {
//写入sdk配置
try {
const files = fs.readdirSync(path.resolve(sdkPath))
files.forEach(function (item,index) {
let stat = fs.lstatSync(path.join(sdkPath,item))
if(stat.isDirectory()){
// console.log('aaaaa',path.join(jsonPath,fileName),fs.existsSync(path.join(jsonPath,fileName)))
if(!fs.existsSync(path.join(jsonPath,fileName))){
fs.writeFileSync(path.join(jsonPath,fileName),"{}","utf-8");
}
//抽取preload为true的sdk
let target = JSON.parse(fs.readFileSync(path.join(jsonPath,fileName),"utf-8"))
let sdkJson = JSON.parse(fs.readFileSync(path.join(sdkPath,item,fileName),"utf-8"));
//TODO 已有属性就不再写入
// console.log(target.hasOwnProperty(item));
// if(!target.hasOwnProperty(item)){
sdks[item] = sdkJson[item];
console.log(path.join(jsonPath,fileName));
fs.writeFileSync(path.join(jsonPath,fileName),JSON.stringify(sdks,null,"\t"))
// };
}
})
console.log(sdks);
//自身platform
// json = JSON.parse(fs.readFileSync(path.join(jsonPath,fileName),'utf-8'));
// json['dependent'] = sdks;
//
// console.log(path.join(jsonPath,fileName))
// callback();
}catch (e) {
console.log(e)
}
// console.log(sdks);
})
}
module.exports = loadSdkPlugin