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) => {});
 // 比如

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。