cc-inspector-chrome/source/plugins/chrome-manifest.js

46 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-04-02 21:49:02 +08:00
const Fs = require("fs");
const Path = require("path");
const FsExtra = require("fs-extra");
class ChromeManifest {
constructor(options) {
this.options = options;
}
apply(compiler) {
compiler.plugin("done", function (compilation, callback) {
const {manifest} = this.options;
if (manifest) {
if (Fs.existsSync(manifest)) {
// 生成manifest.json
let data = require(manifest);
let distPath = compilation.compilation.options.output.path;
let outFile = Path.join(distPath, "manifest.json");
Fs.writeFileSync(outFile, JSON.stringify(data, null, 4));
console.log(`生成manifest文件: ${outFile}`);
// 复制图片
const manifestDir = Path.dirname(manifest);
if (data.icons) {
for (let key in data.icons) {
let icon = data.icons[key];
let iconPath = Path.join(manifestDir, icon);
if (Fs.existsSync(iconPath)) {
FsExtra.copySync(iconPath, Path.join(distPath, icon), {overwrite: true});
console.log(`copy res: ${icon}`);
}
}
}
} else {
console.error(`manifest文件不存在${manifest}`);
}
} else {
console.log("缺少插件的manifest信息");
}
}.bind(this));
}
}
module.exports = ChromeManifest;