developit / developit/microbundle
Error: Unexpected token when including a file with `declare namespace` in it.
- 主要言語
- JavaScript
- スター
- 8.1k
- フォーク
- 358
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Hi microbundle team.
I'm trying to build a package, and I've needed to override some types since the types repo for the main dependency hasn't been updated.
I was on `0.14.x` before, but I updated to `0.15.1` and I still get this error.
```
$ microbundle --jsx React.createElement --tsconfig tsconfig.build.json
Error: Unexpected token (Note that you need plugins to import files that are not JavaScript)
at /Users/user/Documents/osd-react-renderer/packages/renderer/src/types/OpenSeadragonV5.d.ts:3:8
1: /* eslint-disable max-classes-per-file */
2:
3: declare namespace OpenSeadragon {
^
4: export function isFunction(obj: unknown): boolean;
```
I actually had two errors in this file. The first error said:
```
osd-react-renderer: (babel plugin) SyntaxError: /Users/user/Documents/osd-react-renderer/packages/renderer/src/types/OpenSeadragonV5.d.ts: Missing semicolon. (3:7)
osd-react-renderer: 1 | /* eslint-disable max-classes-per-file */
osd-react-renderer: 2 |
osd-react-renderer: > 3 | declare namespace OpenSeadragon {
osd-react-renderer: | ^
osd-react-renderer: 4 | export function isFunction(obj: unknown): boolean;
osd-react-renderer: 5 |
osd-react-renderer: 6 | export function isCanvasTainted(canvas: HTMLCanvasElement): boolean;
osd-react-renderer: at undefined:3:7
```
This error I was able to resolve with a `.babelrc.json` file, but I can't see what configuration can be used to resolve the first error.
I noticed that previously we were able to build the app when we used `declare module `OpenSeadragonV2`, but `declare namespace` specifically is causing this.
Any suggestions on what configuration can resolve this issue?
Thanks
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
Reproduce the reported command, `microbundle --jsx React.createElement --tsconfig tsconfig.build.json`, using the referenced `OpenSeadragonV5.d.ts` file. Start by inspecting `tsconfig.build.json` and `.babelrc.json` to see how declaration files and `declare namespace` are parsed. Done means the package builds without the unexpected-token or Babel syntax errors.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- babel, javascript, typescript
- 領域
- build-system, tooling
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100