Rollup-plugin-typescript2: Diese Syntax erfordert einen importierten Helfer, aber das Modul 'tslib' kann nicht gefunden werden.

Erstellt am 18. Apr. 2017  ·  19Kommentare  ·  Quelle: ezolenko/rollup-plugin-typescript2

Ich sehe, dass der Code einige Verweise auf tslib und importHelpers daher gehe ich davon aus, dass dies transparent funktionieren sollte. Wenn nicht, freue ich mich zu wissen, was fehlt.

So reproduzieren Sie:

Installierte Pakete:

$ 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);

Und module.ts :

export class Foo {}

export class Bar extends Foo {}

Beim Ausführen des Rollups wie folgt:

./node_modules/.bin/rollup -c rollup.config.js

Ich bekomme diesen Fehler:

🚨   rpt2: module.ts (3,18): semantic error TS2354 This syntax requires an imported helper but module 'tslib' cannot be found.
module.ts

Ich denke, das liegt daran, dass die Syntax extends einen __extends Helfer von tslib erfordert, aber Typoskript tslib nicht finden kann.

Erwartetes Ergebnis ist, dass die benötigten Helfer Teil des Bündels werden.

Vielen Dank.

Hilfreichster Kommentar

@hueitan Ich hatte das gleiche Problem, als ich bereits "moduleResolution": "node" . Behoben, indem ich "tslib": "^1.10.0" zu meinen devDependencies hinzugefügt habe.

Alle 19 Kommentare

Das soll auf jeden Fall transparent funktionieren (und funktioniert bei mir in meinen eigenen Projekten). Ich werde dein genaues Setup ausprobieren, danke.

Sieht so aus, als ob Sie "moduleResolution": "node" in tsconfig benötigen, andernfalls kann Typescript tslib in node_modules nicht finden.

Ich bin mir nicht sicher, ob dies bei Nicht-Knoten-Setups zu Problemen führen könnte, aber ich habe noch nichts diesbezüglich gehört.

Tatsächlich funktioniert es mit "moduleResolution": "node" wie erwartet. Wenn ich https://www.typescriptlang.org/docs/handbook/module-resolution.html lese , denke ich, dass "node" besser zu mir passt, also werde ich es einfach verwenden. Darf ich vorschlagen, es in der README zu erwähnen/empfehlen?

Wie ich sehe, haben Sie #14 für den Fall "classic" geöffnet, also schließe ich das hier. Vielen Dank!

Ich bin mir nicht sicher, ob noch jemand das gleiche Problem hat wie ich.

Ich hatte dieses Problem https://github.com/rollup/rollup-plugin-typescript/issues/109 , daher wechsle ich zu diesem Repo, aber dann erhalte ich diesen tslib Fehler.

da die tsconfig bereits "moduleResolution": "node"

Wenn Sie Ihre tsconfig, rollup config und package.json posten, könnte jemand etwas falsch machen.

@hueitan Ich hatte das gleiche Problem, als ich bereits "moduleResolution": "node" . Behoben, indem ich "tslib": "^1.10.0" zu meinen devDependencies hinzugefügt habe.

Hinzufügen von tslib da die Abhängigkeiten auch für mich funktionieren. wenn auch nicht die schöne lösung

tslib ist bereits eine Abhängigkeit von rollup-plugin-typescript2 , wie kommt es dazu, dass es auf Ihrem System fehlt?

Verwenden Sie npm install oder etwas anderes?

In meinem Fall verwende ich Garn. Wenn ich das Garn.lock lösche und neu installiere, brauche ich keine explizite Erwähnung von tslib in der package.json

Ich kann es in folgendem Repo reproduzieren:

https://github.com/giniedp/tweak-ui

git clone [email protected]:giniedp/tweak-ui.git
cd tweak-ui
git checkout v0.1.0

Bearbeiten Sie nun package.json und entfernen Sie tslib . Dann mach

yarn install
yarn run build

du solltest stoßen

This syntax requires an imported helper named '__spreadArrays', but module 'tslib' has no exported member '__spreadArrays'

jetzt lösche die yarn.lock und dann

yarn install
yarn run build

läuft prima.

Dies wurde damit behoben

@hueitan Ich hatte das gleiche Problem, als ich bereits "moduleResolution": "node" . Behoben, indem ich "tslib": "^1.10.0" zu meinen devDependencies hinzugefügt habe.

Fest! Meins war in regelmäßigen Abhängigkeiten.

Behoben durch Hinzufügen von "tslib": "^1.10.0" zu meinen Abhängigkeiten.

npm und tslib -D

hat bei mir auch funktioniert

Wie @ezolenko sagt: Während npm i tslib -D funktioniert, sollte dies _nicht_ als Lösung verwendet werden, denn:

tslib ist bereits eine Abhängigkeit von rollup-plugin-typescript2 , wie kommt es dazu, dass es auf Ihrem System fehlt?

Verwenden Sie npm install oder etwas anderes?

Was in meinem Fall funktioniert hat und die bessere Lösung ist, ist, package-lock und node_modules zu löschen und neu zu installieren.

rm -rf ./node_modules
rm -rf ./package-lock.json
npm i

@hueitan Ich hatte das gleiche Problem, als ich bereits "moduleResolution": "node" . Behoben, indem ich "tslib": "^1.10.0" zu meinen devDependencies hinzugefügt habe.

Danke, es ist so hilfreich

Keine der vorgeschlagenen Lösungen hat bei mir funktioniert. Das Aktualisieren von rollup-plugin-typescript2 hat den Zweck erfüllt.

npm i [email protected]

Es stellte sich heraus, dass Rollup [email protected] selbst wenn ich ^1.10.0 in devDependencies . Mir wurde klar, dass rollup-plugin-typescript2 die tslib-Version überschrieben hat. Ich habe v0.20.1 ; auf v0.27.1 aktualisiert.

Seltsames Verhalten, aber der Neustart von VS-Code hat bei mir funktioniert. Ich hatte das Problem vorher nicht, es trat erst nach einer Paketinstallation auf.

Behoben durch Hinzufügen von "tslib": "^1.10.0" zu meinen Abhängigkeiten.

Vielen Dank. Gerade zu peerDependencies hinzugefügt und es funktioniert gut für mich, muss nicht installiert werden

Ich hatte diesen Fehler:

Semantischer Fehler TS2343: Diese Syntax erfordert einen Impor
ted-Helfer namens '__spreadArray', der in 'tslib' nicht existiert. Ziehen Sie in Erwägung, Ihre Version von 'tslib' zu aktualisieren.

Behoben durch Hinzufügen von "tslib": "^2.1.0" zu meinen Abhängigkeiten.

Sie können unsere tslib-Version einfach aktualisieren. Ich habe meine von [email protected] bis tslib@^2.2.0 gemacht, was zu der Zeit die neueste ist und mein "__spreadArray" -Problem behoben hat .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen