Vejo que o código tem algumas referências a tslib
e importHelpers
então presumo que isso funcione de forma transparente. Caso contrário, ficarei feliz em saber o que está faltando.
Aqui está como reproduzir:
Pacotes instalados:
$ npm ls --depth=0
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
tsconfig.json
:
{
"compilerOptions": {
"target": "es5"
}
}
rollup.config.js
:
import typescript from 'rollup-plugin-typescript2';
export default {
entry: './main.ts',
plugins: [
typescript()
]
}
main.ts
:
import {Foo} from './module';
console.log("HERE" + Foo);
E module.ts
:
export class Foo {}
export class Bar extends Foo {}
Ao executar o rollup da seguinte forma:
./node_modules/.bin/rollup -c rollup.config.js
Eu recebo este erro:
🚨 rpt2: module.ts (3,18): semantic error TS2354 This syntax requires an imported helper but module 'tslib' cannot be found.
module.ts
Acho que isso ocorre porque a sintaxe extends
requer um auxiliar __extends
de tslib
, mas o texto digitado não consegue encontrar tslib
.
O resultado esperado é que os ajudantes necessários se tornem parte do pacote.
Obrigado.
Definitivamente, isso deve funcionar de forma transparente (e funciona para mim em meus próprios projetos). Vou tentar sua configuração exata, obrigado.
Parece que você precisa de "moduleResolution": "node"
em tsconfig, caso contrário, o typescript não pode encontrar tslib em node_modules.
Não tenho certeza se isso pode causar problemas em configurações sem nós, mas ainda não ouvi nada sobre isso.
De fato, com "moduleResolution": "node"
, funciona como esperado. Lendo https://www.typescriptlang.org/docs/handbook/module-resolution.html , acho que "node"
é a melhor opção para mim, então vou apenas usá-lo. Posso sugerir mencioná-lo / recomendá-lo no README?
Vejo que você abriu # 14 para o caso "classic"
, então fecharei isso. Obrigado!
Não tenho certeza se alguém está enfrentando o mesmo problema que o meu.
Eu estava tendo esse problema https://github.com/rollup/rollup-plugin-typescript/issues/109 , portanto, mudo para este repo, mas estou recebendo este erro tslib
.
pois o tsconfig já é "moduleResolution": "node"
Se você postar seu tsconfig, rollup config e package.json, alguém pode detectar algo errado.
@hueitan eu enfrentei o mesmo problema enquanto já tinha "moduleResolution": "node"
. Corrigido ao adicionar "tslib": "^1.10.0"
às minhas devDependencies.
adicionando tslib
já que as dependências funcionam para mim também. embora não seja a solução bonita
tslib
já é uma dependência de rollup-plugin-typescript2
, como isso acaba faltando em seu sistema?
Você usa npm install
ou outra coisa?
no meu caso estou usando fio. Excluindo o yarn.lock e reinstalando novamente, não preciso de uma menção explícita de tslib
no package.json
Posso reproduzi-lo no seguinte repo:
https://github.com/giniedp/tweak-ui
git clone [email protected]:giniedp/tweak-ui.git
cd tweak-ui
git checkout v0.1.0
agora edite package.json
e remova tslib
. Então faça
yarn install
yarn run build
você deveria correr para
This syntax requires an imported helper named '__spreadArrays', but module 'tslib' has no exported member '__spreadArrays'
agora exclua o yarn.lock
e então
yarn install
yarn run build
funciona bem.
Isso foi corrigido com este
@hueitan eu enfrentei o mesmo problema enquanto já tinha
"moduleResolution": "node"
. Corrigido ao adicionar"tslib": "^1.10.0"
às minhas devDependencies.
Fixo! O meu estava em dependências regulares.
Corrigido adicionando "tslib": "^ 1.10.0" às minhas dependências.
npm i tslib -D
funcionou para mim também
Como @ezolenko diz: Embora npm i tslib -D
funcione, isso _não_ deve ser usado como a solução, porque:
tslib
já é uma dependência derollup-plugin-typescript2
, como isso acaba faltando em seu sistema?Você usa
npm install
ou outra coisa?
O que funcionou no meu caso e é a melhor solução é deletar package-lock e node_modules e reinstalar.
rm -rf ./node_modules
rm -rf ./package-lock.json
npm i
@hueitan eu enfrentei o mesmo problema enquanto já tinha
"moduleResolution": "node"
. Corrigido ao adicionar"tslib": "^1.10.0"
às minhas devDependencies.
Obrigado, é tão útil
Nenhuma das soluções propostas funcionou para mim. Atualizar rollup-plugin-typescript2
resolveu o problema.
npm i [email protected]
Acontece que o rollup estava usando [email protected]
mesmo quando eu tinha ^1.10.0
em devDependencies
. Percebi que rollup-plugin-typescript2
estava substituindo a versão tslib. Eu estava usando v0.20.1
; atualizado para v0.27.1
.
Comportamento estranho, mas reiniciar o código do VS funcionou para mim. Eu não tinha esse problema anteriormente, ele só apareceu depois de fazer a instalação de um pacote.
Corrigido adicionando "tslib": "^ 1.10.0" às minhas dependências.
Obrigado. Acabei de adicionar peerDependencies
e funciona bem para mim, não é necessário instalar
Eu tive este erro:
erro semântico TS2343: esta sintaxe requer um importante
ajudante ted denominado '__spreadArray' que não existe em 'tslib'. Considere atualizar sua versão do 'tslib'.
Corrigido adicionando "tslib": "^ 2.1.0" às minhas dependências.
Você pode simplesmente atualizar nossa versão tslib . Eu fiz o meu de [email protected] para tslib@^2.2.0 que é o mais recente na época e corrigiu meu problema "__spreadArray" .
Comentários muito úteis
@hueitan eu enfrentei o mesmo problema enquanto já tinha
"moduleResolution": "node"
. Corrigido ao adicionar"tslib": "^1.10.0"
às minhas devDependencies.