mirror of
https://github.com/tidys/cc-inspector-chrome
synced 2025-04-19 16:38:41 +00:00
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
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;
|