We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
father 目前的 UMD 产物构建使用的是 @umijs/bundler-webpack,面对大型组件库的时候构建仍然是吃力的,倘若可以接入 Mako,构建耗时应当可以大幅缩短
@umijs/bundler-webpack
由于 bundler-okam 原本对标的就是 @umijs/bundler-webpack,所以从 father 的视角来看,Mako 可作为 bundle 模式下一种新的 bundler 类型
bundler-okam
.fatherrc.ts 新增 umd: { bundler: 'webpack' | 'mako' } 的配置项做切换
.fatherrc.ts
umd: { bundler: 'webpack' | 'mako' }
代码位置:https://github.com/umijs/father/blob/8f106062ed4e84e53a9c117fb4b6b43e21dfde36/src/types.ts#L164
原有 bundle 中与 @umijs/bundler-webpack 有关的调用逻辑都挪到 bundlers/webpack.ts 中,另外新增 bundlers/mako.ts 来调用 bundler-okam
bundlers/webpack.ts
bundlers/mako.ts
代码位置:https://github.com/umijs/father/blob/4e35218d3ca5735f221bc2d28abb17c537e0f986/src/builder/bundle/index.ts#L57
bundler-okam 中已对能兼容的配置做了转换(比如 extraBabelPlugins 中的 babel-plugin-import),对不兼容的配置做了警告,详见 #611
extraBabelPlugins
babel-plugin-import
所以 father 层在文档中对不支持的配置做说明即可,列表如下:
autoprefixer
chainWebpack
extractCSS
postcssOptions
文档的更新需要和 bundler-okam 的对外闭源版本节奏一致
虽然从配置层面上 bundler-okam 已经做了抹平,但能力上目前是无法完全覆盖 @umijs/bundler-webpack 的,这些能力现阶段将不可用:
ANALYZE=1
我们主推 esm 所以 father 脚手架和对内的 Bigfish 脚手架默认都是没有开启 umd 产物构建的,无法和 Bigfish 一样通过修改脚手架实现新增应用使用 Mako,更改 umd.bundler 的默认值又可能会影响存量项目的产物,所以目前想到的方案是对开启 UMD 构建的项目做 CLI 推广
umd.bundler
由于 bundler-okam 尚无对外的版本,所以内部可以和 Umi + Bigfish 的思路一样,通过 Bigfish 组件库向 father 提供 bundler-okam 模块,先让 Mako 构建可用,未来再内置到 father 中
The text was updated successfully, but these errors were encountered:
umijs/father#750
Sorry, something went wrong.
xiaohuoni
No branches or pull requests
背景
father 目前的 UMD 产物构建使用的是
@umijs/bundler-webpack
,面对大型组件库的时候构建仍然是吃力的,倘若可以接入 Mako,构建耗时应当可以大幅缩短方案
由于
bundler-okam
原本对标的就是@umijs/bundler-webpack
,所以从 father 的视角来看,Mako 可作为 bundle 模式下一种新的 bundler 类型配置变化
.fatherrc.ts
新增umd: { bundler: 'webpack' | 'mako' }
的配置项做切换代码位置:https://github.com/umijs/father/blob/8f106062ed4e84e53a9c117fb4b6b43e21dfde36/src/types.ts#L164
源码结构变化
原有 bundle 中与
@umijs/bundler-webpack
有关的调用逻辑都挪到bundlers/webpack.ts
中,另外新增bundlers/mako.ts
来调用bundler-okam
代码位置:https://github.com/umijs/father/blob/4e35218d3ca5735f221bc2d28abb17c537e0f986/src/builder/bundle/index.ts#L57
配置的兼容
bundler-okam
中已对能兼容的配置做了转换(比如extraBabelPlugins
中的babel-plugin-import
),对不兼容的配置做了警告,详见 #611所以 father 层在文档中对不支持的配置做说明即可,列表如下:
autoprefixer
chainWebpack
extractCSS
postcssOptions
可预料的兼容问题
虽然从配置层面上
bundler-okam
已经做了抹平,但能力上目前是无法完全覆盖@umijs/bundler-webpack
的,这些能力现阶段将不可用:ANALYZE=1
推广方式
我们主推 esm 所以 father 脚手架和对内的 Bigfish 脚手架默认都是没有开启 umd 产物构建的,无法和 Bigfish 一样通过修改脚手架实现新增应用使用 Mako,更改
umd.bundler
的默认值又可能会影响存量项目的产物,所以目前想到的方案是对开启 UMD 构建的项目做 CLI 推广由于
bundler-okam
尚无对外的版本,所以内部可以和 Umi + Bigfish 的思路一样,通过 Bigfish 组件库向 father 提供bundler-okam
模块,先让 Mako 构建可用,未来再内置到 father 中The text was updated successfully, but these errors were encountered: