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.
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 vonrollup-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 .
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.