Je vois que le code contient des références à tslib
et importHelpers
donc je suppose que cela devrait fonctionner de manière transparente. Sinon, je serai heureux de savoir ce qui manque.
Voici comment reproduire :
Paquets installés :
$ 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);
Et module.ts
:
export class Foo {}
export class Bar extends Foo {}
Lors de l'exécution du cumul comme suit :
./node_modules/.bin/rollup -c rollup.config.js
J'obtiens cette erreur :
🚨 rpt2: module.ts (3,18): semantic error TS2354 This syntax requires an imported helper but module 'tslib' cannot be found.
module.ts
Je pense que c'est parce que la syntaxe extends
nécessite une __extends
de tslib
, mais le script dactylographié ne peut pas trouver tslib
.
Le résultat attendu est que les assistants requis fassent partie du paquet.
Merci.
Ceci est certainement censé fonctionner de manière transparente (et fonctionne pour moi dans mes propres projets). Je vais essayer votre configuration exacte, merci.
On dirait que vous avez besoin de "moduleResolution": "node"
dans tsconfig, sinon le typescript ne peut pas trouver tslib dans node_modules.
Je ne sais pas si cela pourrait poser des problèmes sur les configurations sans nœud, mais je n'ai encore rien entendu à ce sujet.
En effet, avec "moduleResolution": "node"
, cela fonctionne comme prévu. En lisant https://www.typescriptlang.org/docs/handbook/module-resolution.html , je pense que "node"
me convient mieux, je vais donc l'utiliser. Puis-je suggérer de le mentionner/le recommander dans le README ?
Je vois que vous avez ouvert #14 pour le cas "classic"
, donc je vais fermer ça. Merci!
Je ne suis pas sûr que quelqu'un d'autre rencontre le même problème que le mien.
J'avais ce problème https://github.com/rollup/rollup-plugin-typescript/issues/109 , donc je passe à ce référentiel, mais j'obtiens cette erreur tslib
.
car le tsconfig est déjà "moduleResolution": "node"
Si vous publiez votre tsconfig, rollup config et package.json, quelqu'un pourrait repérer quelque chose qui ne va pas.
@hueitan j'ai rencontré le même problème alors que "moduleResolution": "node"
. Corrigé en ajoutant "tslib": "^1.10.0"
à mes devDependencies.
en ajoutant tslib
car les dépendances fonctionnent également pour moi. bien que ce ne soit pas la jolie solution
tslib
est déjà une dépendance de rollup-plugin-typescript2
, comment finit-il par manquer sur votre système ?
Utilisez-vous npm install
ou autre chose ?
dans mon cas, j'utilise du fil. En supprimant le fil.lock et en réinstallant frais, je n'ai pas besoin d'une mention explicite de tslib
dans le package.json
Je peux le reproduire dans le repo suivant :
https://github.com/giniedp/tweak-ui
git clone [email protected]:giniedp/tweak-ui.git
cd tweak-ui
git checkout v0.1.0
éditez maintenant le package.json
et supprimez tslib
. Alors fais
yarn install
yarn run build
tu devrais tomber sur
This syntax requires an imported helper named '__spreadArrays', but module 'tslib' has no exported member '__spreadArrays'
supprimez maintenant le yarn.lock
puis
yarn install
yarn run build
marche bien.
Cela a été corrigé avec ceci
@hueitan j'ai rencontré le même problème alors que
"moduleResolution": "node"
. Corrigé en ajoutant"tslib": "^1.10.0"
à mes devDependencies.
Fixé! Le mien était dans des dépendances régulières.
Corrigé en ajoutant "tslib": "^1.10.0" à mes dépendances.
npm je tslib -D
a fonctionné pour moi aussi
Comme le dit @ezolenko : bien que npm i tslib -D
fonctionne, cela ne devrait _pas_ être utilisé comme solution, car :
tslib
est déjà une dépendance derollup-plugin-typescript2
, comment finit-il par manquer sur votre système ?Utilisez-vous
npm install
ou autre chose ?
Ce qui a fonctionné dans mon cas et est la meilleure solution consiste à supprimer package-lock et node_modules et à les réinstaller.
rm -rf ./node_modules
rm -rf ./package-lock.json
npm i
@hueitan j'ai rencontré le même problème alors que
"moduleResolution": "node"
. Corrigé en ajoutant"tslib": "^1.10.0"
à mes devDependencies.
Merci, c'est tellement utile
Aucune des solutions proposées n'a fonctionné pour moi. La mise rollup-plugin-typescript2
niveau de
npm i [email protected]
Il s'avère que le rollup utilisait [email protected]
même lorsque j'avais ^1.10.0
dans devDependencies
. J'ai réalisé que rollup-plugin-typescript2
remplaçait la version tslib. J'utilisais v0.20.1
; mis à niveau vers v0.27.1
.
Comportement étrange, mais le redémarrage du code VS a fonctionné pour moi. Je n'avais pas le problème auparavant, il est apparu juste après l'installation d'un package.
Corrigé en ajoutant "tslib": "^1.10.0" à mes dépendances.
Merci. Je viens d'ajouter à peerDependencies
et cela fonctionne bien pour moi, pas besoin d'installer
J'ai eu cette erreur :
erreur sémantique TS2343 : cette syntaxe nécessite une impor
ted helper nommé '__spreadArray' qui n'existe pas dans 'tslib'. Pensez à mettre à jour votre version de 'tslib'.
Corrigé en ajoutant "tslib": "^2.1.0" à mes dépendances.
Vous pouvez simplement mettre à niveau notre version tslib . J'ai fait le mien de [email protected] à tslib@^2.2.0 qui est le dernier à l'époque et cela a résolu mon problème "__spreadArray" .
Commentaire le plus utile
@hueitan j'ai rencontré le même problème alors que
"moduleResolution": "node"
. Corrigé en ajoutant"tslib": "^1.10.0"
à mes devDependencies.