|
|
const path = require('path'); const fs = require('fs') const fileName = 'tisplatform.json'; const production = process.env.NODE_ENV === 'production' || process.env.VUE_APP_SDK === 'sdk'; const uc = require("upper-case"); function resolve(dir) { return path.join(__dirname,dir); } function parent_path_count(path_str,count) { let path_temp = path_str; for (let i = 0; i < count; i++) { path_temp = path.resolve(path_temp,'..') } } function createTisplatformPlugin(options){ this.options = options; }
createTisplatformPlugin.prototype.apply = function (compiler) { let _path = this.options.path; let sdkName = this.options.sdkName; let json = {}; if(!production) return; compiler.plugin('compilation',function (compilation,options) { compilation.plugin('html-webpack-plugin-before-html-processing',function (htmlPluginData,callback) { // const title = htmlPluginData.plugin.options.title;
// const ROOT_DIR_NAME = path.resolve(__dirname,'../../').split(path.sep).pop()
// const title = uc(ROOT_DIR_NAME);
json[sdkName] = { cssFiles : htmlPluginData.assets.css/*.map(css=>"/"+title+css)*/, jsFiles : htmlPluginData.assets.js/*.map(js=>"/"+title+js)*/, preload : true, }; // console.log('资源',title,htmlPluginData)
console.log(htmlPluginData.assets.js); // console.log('------------',_path);
console.log(htmlPluginData.assets.css); }) }) compiler.plugin('done',function (compilation,options) { console.log('compiler done') fs.writeFileSync(path.join(_path,fileName),JSON.stringify(json,null,"\t")) let config = JSON.parse(fs.readFileSync(path.join(_path,"esplug.json"))); config.id = sdkName; config.icon = `/${sdkName}/icon.png` config.entry = `/${sdkName}/`; config.type = "app"; config.version = "2"; // console.log('config file:',config);
fs.writeFileSync(path.join(_path,"esplug.json"),JSON.stringify(config,null,"\t"));
//兼容kt,把描述文件统一放到manifest文件夹下
fs.mkdirSync(path.join(_path)+"/manifest"); fs.writeFileSync(path.join(_path,"manifest/esplug.json"),fs.readFileSync(path.join(_path,"esplug.json")));
//添加路径
// let css = fs.readFileSync(path.join(_path,"css/app.css"))
// console.log(css)
// .replace(/url\(/g,`url(${sdkName}/`)
}) }
module.exports = createTisplatformPlugin;
|