developit / developit/microbundle

Error: Unexpected token when including a file with `declare namespace` in it.

Aberta
#1,088 8 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
JavaScript
Estrelas
8.1k
Forks
358
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Reproduza o comando relatado, `microbundle --jsx React.createElement --tsconfig tsconfig.build.json`, usando o arquivo `OpenSeadragonV5.d.ts` referenciado. Comece inspecionando `tsconfig.build.json` e `.babelrc.json` para verificar como os arquivos de declaração e `declare namespace` são analisados. Considera-se concluído quando o pacote é compilado sem os erros de sintaxe do Babel ou de token inesperado.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
babel, javascript, typescript
Domínio
build-system, tooling
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.