umijs / babel-plugin-import

Modularly import plugin for babel.
3.16k stars 404 forks source link

fix: newExpression arguments not be traverse issue #596

Closed J10240221 closed 2 years ago

J10240221 commented 2 years ago

修复 newExpression arguments 并没有 被转换的问题

// 转译后代码 var _button = _interopRequireDefault(require("antd/lib/button")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } console.log(_button.default); new A(Button); // FIXME: 由于 Button 并不会被处理,导致运行时报错:Uncaught ReferenceError: Button is not defined



- 原因分析
  - 在 plugin.js 源码文件中,由于 arguments 是「数组」,而 buildExpressionHandler  并没有处理「数组」这种情况
导致:NewExpression 给 buildExpressionHandler 传递了 arguments 但却没有起到任何作用

- 解决方案
  - 修正对 newExpression 下的 arguments 的转换