插件示例
下面是参考 umi-plugin-locale
的需求添加的一个插件伪代码示例,完整的例子可以查看源代码。
export default (api, opts = {}) => {
const { paths } = api;
// 监听插件配置变化
api.onOptionChange((newOpts) => {
opts = newOpts;
api.rebuildTmpFiles();
});
// 添加 Provider 的包裹
api.addRendererWrapperWithComponent(join(__dirname, './locale.js'));
api.addRendererWrapperWithComponent(() => {
if (opts.antd) {
return join(__dirname, './locale-antd.js');
}
});
// 添加对 locale 文件的 watch
api.addPageWatcher(
join(paths.absSrcPath, config.singular ? 'locale' : 'locales'),
);
};