Skip to content
New issue

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

fix(mini-runner): 修复 @babel/parser 与 acron 关于动态 import() 解析类型不一致导致的报错 #11589

Merged
merged 6 commits into from
Apr 25, 2022

Conversation

wuchangming
Copy link
Contributor

@wuchangming wuchangming commented Apr 7, 2022

这个 PR 做了什么? (简要描述所做更改)

当 babel-preset-taro 设置 "dynamic-import-node": false 时,使用动态 import 时,会出现报错 Module parse failed: baseVisitor[type] is not a function

修复方式:在 baseVisitor 中忽略掉 Import 类型。

原因是 @babel/parseracorn 关于 Import() 的类型解析不一致导致
@babel/parser -- > type: Import
acorn --> type: ImportExpression
webpack 中使用的是 @babel/parser,所以导致和此处的 acorn-walk 不兼容

https://astexplorer.net/ 中可验证 AST 中的差异:
image
image

这个 PR 是什么类型? (至少选择一个)

  • 错误修复(Bugfix) issue id #
  • 新功能(Feature)
  • 代码重构(Refactor)
  • TypeScript 类型定义修改(Typings)
  • 文档修改(Docs)
  • 代码风格更新(Code style update)
  • 其他,请描述(Other, please describe):

这个 PR 涉及以下平台:

  • 所有小程序
  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 字节跳动小程序
  • QQ 轻应用
  • 京东小程序
  • 快应用平台(QuickApp)
  • Web 平台(H5)
  • 移动端(React-Native)

@taro-bot2
Copy link

taro-bot2 bot commented Apr 7, 2022

欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷

一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。

Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏

  1. 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
  2. 确保 CI 顺利运行。
  3. 最好能提供对应的测试用例。

为了更好地进行沟通,请加入 Taro 开发者微信群:

@wuchangming
Copy link
Contributor Author

@luckyadam ,CC

@Chen-jj
Copy link
Contributor

Chen-jj commented Apr 11, 2022

不用 dynamic-import-node 时运行时会报错,但没有复现编译时的报错,请问是如何复现呢?

@Chen-jj Chen-jj added the question Further information is requested label Apr 11, 2022
@wuchangming
Copy link
Contributor Author

@Chen-jj
简单写了一个可以复现报错的 Demo: https://github.com/wuchangming/taro-demo-pr-11589

报错信息如下图:
image

@Chen-jj Chen-jj self-requested a review April 19, 2022 02:49
@Chen-jj Chen-jj added V-3 Version - 3.x and removed question Further information is requested labels Apr 19, 2022
@wuchangming
Copy link
Contributor Author

ping @Chen-jj

@Chen-jj
Copy link
Contributor

Chen-jj commented Apr 25, 2022

感谢贡献~

@Youngwellcool
Copy link

@wuchangming 请问你这个问题解决了吗?是要升级babel-preset-taro依赖吗?

@wuchangming
Copy link
Contributor Author

@Youngwellcool ,解决方案就是这个 PR 的改动。不需要升级

@Youngwellcool
Copy link

Youngwellcool commented Jul 27, 2022 via email

@Youngwellcool
Copy link

@Youngwellcool ,解决方案就是这个 PR 的改动。不需要升级
可以了,谢谢大佬

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
V-3 Version - 3.x
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants