94 - 《Bigfish 4 特性 06:那些小而美的改进》
发布于 2022年4月10日
4 月会更新 20 篇 Bigfish 4(含 Umi 4)的新特性,这是第六篇。
Bigfish 4 做了不少小而美的改进,算不上大功能,但却又有助于提升开发者体验(DX)。时间仓促,先凭记忆整理一上篇,之后会再补一下篇。
1、项目级插件:plugin.ts
Bigfish 是高度可定制的,定制的方式可以通过配置或插件,但二者能修改的点还是相差很大的。配置可以修改 40%,而插件可以修改 80%。所以要定制 Bigfish,会配置和会写插件是完全两个层级的。同时写插件的门槛也并不高。
为进一步降低项目中使用插件的门槛,Bigfish 4 中约定项目根目录下的 plugin.ts 为插件,开发者可在此直接调用插件 API,无需注册,支持 TypeScript。
有了这个文件,我们可以在项目级做很多事。比如,
import { IApi } from '@alipay/bigfish';
export default (api: IApi) => {
// 比如修改 HTML
api.modifyHTML($ => {
return $;
});
// 比如在入口的 umi.ts 中添加代码
api.addEntryCodeAhead(() => [`console.log('entry code ahead')`]);
api.addEntryCode(() => [`console.log('entry code')`]);
// 比如在构建完成时做额外的事
api.onBuildComplete((opts) => {});
// 比如在启动阶段做额外的事
api.onStart((opts) => {});
// 比如校验每个 JavaScript/TypeScript 代码
api.onCheckCode((args) => {});
// 比如