Rollup-plugin-typescript2: Cette syntaxe nécessite une aide importée mais le module 'tslib' est introuvable.

Créé le 18 avr. 2017  ·  19Commentaires  ·  Source: ezolenko/rollup-plugin-typescript2

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.

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.

Tous les 19 commentaires

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 de rollup-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" .

Cette page vous a été utile?
0 / 5 - 0 notes