This commit is contained in:
xyf-mac 2021-04-02 21:49:02 +08:00
parent 2fcb4ff2d1
commit 8149dd50cc
3 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1,45 @@
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;

BIN
source/public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

17
source/public/index.html Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>