developit / developit/microbundle

[Bug] build failed on deconstructing rest parameters

オープン
#1,039 コメント 1 件 リアクション 2 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
8.1k
フォーク
358
PR マージ指標
30日以内にマージされた PR はありません

説明

### Description
Build failed when deconstructing rest parameters

### Version
microbundle@^0.15.1

### Reproduce steps
1. input file
```
// test.ts

export function A(...[a, b]: any[]) {}
```

2. build
`microbundle -i test.ts -o test.js`

3. build failed
```
(babel plugin) TypeError: ~/node-demo/test.ts: Cannot read properties of undefined (reading 'referencePaths')
TypeError: ~/node-demo/test.ts: Cannot read properties of undefined (reading 'referencePaths')
at Map.RestElement (~/node-demo/node_modules/microbundle/dist/cli.js:134:19)
at NodePath._call (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:45:20)
at NodePath.call (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:35:17)
at NodePath.visit (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:80:31)
at TraversalContext.visitQueue (~/node-demo/node_modules/@babel/traverse/lib/context.js:86:16)
at TraversalContext.visitMultiple (~/node-demo/node_modules/@babel/traverse/lib/context.js:61:17)
at TraversalContext.visit (~/node-demo/node_modules/@babel/traverse/lib/context.js:107:19)
at traverseNode (~/node-demo/node_modules/@babel/traverse/lib/traverse-node.js:18:17)
at NodePath.visit (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:86:52)
at TraversalContext.visitQueue (~/node-demo/node_modules/@babel/traverse/lib/context.js:86:16)
at TraversalContext.visitSingle (~/node-demo/node_modules/@babel/traverse/lib/context.js:65:19)
at TraversalContext.visit (~/node-demo/node_modules/@babel/traverse/lib/context.js:109:19)
at traverseNode (~/node-demo/node_modules/@babel/traverse/lib/traverse-node.js:18:17)
at NodePath.visit (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:86:52)
at TraversalContext.visitQueue (~/node-demo/node_modules/@babel/traverse/lib/context.js:86:16)
at TraversalContext.visitMultiple (~/node-demo/node_modules/@babel/traverse/lib/context.js:61:17)
at TraversalContext.visit (~/node-demo/node_modules/@babel/traverse/lib/context.js:107:19)
at traverseNode (~/node-demo/node_modules/@babel/traverse/lib/traverse-node.js:18:17)
at traverse (~/node-demo/node_modules/@babel/traverse/lib/index.js:49:34)
at NodePath.traverse (~/node-demo/node_modules/@babel/traverse/lib/path/index.js:108:24)
at PluginPass.Program (~/node-demo/node_modules/microbundle/dist/cli.js:175:14)
at newFn (~/node-demo/node_modules/@babel/traverse/lib/visitors.js:149:21)
at NodePath._call (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:45:20)
at NodePath.call (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:35:17)
at NodePath.visit (~/node-demo/node_modules/@babel/traverse/lib/path/context.js:80:31)
at TraversalContext.visitQueue (~/node-demo/node_modules/@babel/traverse/lib/context.js:86:16)
at TraversalContext.visitSingle (~/node-demo/node_modules/@babel/traverse/lib/context.js:65:19)
at TraversalContext.visit (~/node-demo/node_modules/@babel/traverse/lib/context.js:109:19)
at traverseNode (~/node-demo/node_modules/@babel/traverse/lib/traverse-node.js:18:17)
at traverse (~/node-demo/node_modules/@babel/traverse/lib/index.js:49:34)
at transformFile (~/node-demo/node_modules/@babel/core/lib/transformation/index.js:81:29)
at transformFile.next ()
at run (~/node-demo/node_modules/@babel/core/lib/transformation/index.js:24:12)
at run.next ()
at transform (~/node-demo/node_modules/@babel/core/lib/transform.js:22:41)
at transform.next ()
at step (~/node-demo/node_modules/gensync/index.js:261:32)
at ~/node-demo/node_modules/gensync/index.js:273:13
at async.call.result.err.err (~/node-demo/node_modules/gensync/index.js:223:11)
```

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Reproduce the failure with test.ts and `microbundle -i test.ts -o test.js`. Start at the Babel plugin's RestElement handler in dist/cli.js:134 and the Program traversal at dist/cli.js:175; done means the deconstructed rest-parameter example builds without the reported TypeError.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript, typescript
領域
build-system
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。