使用koa起webpack服务的时候 如何控制webpack打包完成后再执行中间键方法
- 在往koa全局ctx.state挂在ver.json的时候 webpack中哈希版本文件还没有生成
- 怎么控制执行顺序
// json plugin
const fs = require('fs');
const path = require('path');
class BuildEndPlugin {
constructor(props) {
this.filename = props.filename;
}
fn(compilation) {
const currentPath = path.resolve(__dirname, `../public/${this.filename}`);
const chunkName = {};
const chunkObj = compilation.chunks;
chunkObj.forEach(item => {
Object.assign(chunkName, {
[item.name]: item.hash
});
});
if (!fs.existsSync(currentPath)) {
fs.mkdir(`public/version`, () => {
fs.writeFile(currentPath, JSON.stringify(chunkName));
});
}
fs.writeFile(currentPath, JSON.stringify(chunkName));
}
apply(compiler) {
const afterEmit = (compilation, cb) => {
this.fn(compilation);
cb();
}
compiler.plugin('after-emit', afterEmit);
}
}
module.exports = BuildEndPlugin;
// app.js 挂载
app.use(async (ctx, next) => {
Object.assign(ctx.state, {
version
});
await next();
});
// webpack new 插件
new CreateJsonPlugin({
filename: 'version/dev-ver.json'
}),
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
重启电脑试试?
放在挂在hash前面
弟弟回答