1 Star 0 Fork 0

鸵鸟蛋/webpack-mpa

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
htmlAfterWebpackPlugin.js 1.40 KB
一键复制 编辑 原始数据 按行查看 历史
林楠 提交于 2020-10-17 16:28 . webpack 打包多页应用实战
const HtmlWebpackPlugin = require('html-webpack-plugin');
const pluginName = "HtmlAfterWebpackPlugin";
const chalk = require("chalk");
// 获取静态资源的帮助函数
const assetsHelp = data => {
let js = [];
const getAssetsName = {
js: item => `<script src="${item}"></script>`
}
for (let jsItem of data.js) {
js.push(getAssetsName.js(jsItem));
}
return { js };
}
class HtmlAfterWebpackPlugin {
constructor () {
this.jsArr = [];
}
apply(compiler) {
compiler.hooks.compilation.tap(pluginName, (compilation) => {
console.log(chalk.blue("webpack 构建过程开始!"));
HtmlWebpackPlugin.getHooks(compilation).beforeAssetTagGeneration.tapAsync(
pluginName,
(data, cb) => {
const { js } = assetsHelp(data.assets); // 获取 js
this.jsArr = js;
console.log(js);
cb(null, data);
}
)
HtmlWebpackPlugin.getHooks(compilation).beforeEmit.tapAsync(
pluginName,
(data, cb) => {
// data 里就是 beforeEmit 这个钩子能拿到的信息
// 有几个 chunk 就会输出几块信息
// console.log(data);
let _html = data.html;
_html = _html.replace('<!-- injectjs -->', this.jsArr.join(''));
data.html = _html;
cb(null, data);
}
)
});
}
}
module.exports = HtmlAfterWebpackPlugin;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/tuoniaodan/webpack-mpa.git
git@gitee.com:tuoniaodan/webpack-mpa.git
tuoniaodan
webpack-mpa
webpack-mpa
master

搜索帮助