father
father copied to clipboard
feat: support to use swc as transformer
add swc transformer
补一下 alias 的单元测试看看。
补一下 alias 的单元测试看看。
已补。 顺便提个建议,能根据 transformer 的类型来划分测试用例,现在用
cjs -> esbuild
esm -> babel
的方式不太方便扩展,像这次要新增一个 swc transformer
的话,测试用例感觉放哪都不太合适。
-
alias 的逻辑还有些问题,尝试:
// .fatherrc.ts export default { alias: { '@': path.join(__dirname, 'src/dir'), '@dir': path.join(__dirname, 'src/dir'), }, };
import '@/file' import '@dir'
产物结果会达不到预期。
-
swc 在 npm / yarn 安装下会将所有的平台版本都装一遍,至少也要几十 M ,这对于不使用 swc 作为 transform 的用户成本太高,可参考 umi 中自动安装依赖的逻辑改进( https://github.com/umijs/umi/blob/master/packages/preset-umi/src/features/depsOnDemand/depsOnDemand.ts )
-
judgeSome
→isSome
-
使用
jsc.paths
时,baseUrl
是必须的,参见:https://swc.rs/docs/configuration/compilation#jscpaths
@fz6m 1, 3, 4 已搞定。
2 尝试了下,不太行。 swc transformer
依赖了 swc/core
,如果不在 father
里装的话会提示找不到包。commit
看一下 ci 单测挂了
看一下 ci 单测挂了
再看看?await import()
语法好像会中断测试运行,改成了 await require()
Codecov Report
Base: 94.86% // Head: 94.21% // Decreases project coverage by -0.65%
:warning:
Coverage data is based on head (
2230444
) compared to base (b3fb8da
). Patch coverage: 86.79% of modified lines in pull request are covered.
Additional details and impacted files
@@ Coverage Diff @@
## master #527 +/- ##
==========================================
- Coverage 94.86% 94.21% -0.66%
==========================================
Files 49 51 +2
Lines 1266 1365 +99
Branches 276 300 +24
==========================================
+ Hits 1201 1286 +85
- Misses 64 78 +14
Partials 1 1
Impacted Files | Coverage Δ | |
---|---|---|
src/features/configBuilder/configBuilder.ts | 100.00% <ø> (ø) |
|
src/preset.ts | 100.00% <ø> (ø) |
|
src/builder/bundless/loaders/javascript/swc.ts | 79.10% <79.10%> (ø) |
|
src/builder/bundless/loaders/javascript/babel.ts | 92.50% <100.00%> (-0.53%) |
:arrow_down: |
src/builder/utils.ts | 100.00% <100.00%> (ø) |
|
src/features/depsOnDemand/swc.ts | 100.00% <100.00%> (ø) |
|
src/types.ts | 100.00% <100.00%> (ø) |
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.
:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
顺便提个建议,能根据 transformer 的类型来划分测试用例
的确是个问题,后面想办法优化下,之前因为默认 cjs 走 esbuild、esm 走 babel 正好都测到了
@moecasts 还差点覆盖率,有空补一下么,这个 feature 可以发 minor 了
@moecasts 还差点覆盖率,有空补一下么,这个 feature 可以发 minor 了
@PeachScript 好的,我晚上或明天补下
@PeachScript swc 有个比较严重的 bug,估计不能发先了 https://github.com/swc-project/swc/issues/6159
@moecasts 还差点覆盖率,有空补一下么,这个 feature 可以发 minor 了
已补
@moecasts bundless-alias-swc
和 bundless-swc-alias
这俩用例有啥区别么,是不是留 cjs
和 esm
都配置 swc
的就行?
@moecasts
bundless-alias-swc
和bundless-swc-alias
这俩用例有啥区别么,是不是留cjs
和esm
都配置swc
的就行?
@PeachScript 合代码的时候出错了,保留 bundless-swc-alias
就行,cjs
和 esm
都改成了 swc
@moecasts 平时用钉钉么,要不加个好友 👀
@PeachScript 加了,不过钉钉比较少用。