Beschreibe den Fehler
Gerade jetzt auf 5.3.3 aktualisiert und unser Angular-Build schlägt mit folgenden Fehlern fehl:
[ng]
[ng] ERROR in ../../node_modules/@storybook/channels/dist/index.d.ts:25:9 - error TS1086: An accessor cannot be declared in an ambient context.
[ng]
[ng] 25 get hasTransport(): boolean;
[ng] ~~~~~~~~~~~~
Aus einem schnellen Google geht hervor, dass andere Repos aufgrund der Verwendung von TypeScript 3.7.0 mit demselben Problem konfrontiert sind - Angular ist jedoch auf <3.5.0 beschränkt
Ähnliche Fehler
https://github.com/nestjs/nest/issues/3513
https://github.com/googleapis/node-gtoken/issues/244
Ich glaube, die bahnbrechende Änderung kommt direkt von TypeScript https://github.com/microsoft/TypeScript/issues/33939 - aber bis ein Fix veröffentlicht wird, muss die index.d.ts
-Datei mit npm i typescript@~3.6.0
(Tauschen Sie ^
gegen ~
)
System:
OS: macOS Mojave 10.14.6
CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
Binaries:
Node: 12.14.1 - /usr/local/bin/node
npm: 6.13.4 - /usr/local/bin/npm
Browsers:
Chrome: 79.0.3945.117
Safari: 13.0.4
npmPackages:
@storybook/addon-actions: ^5.3.3 => 5.3.3
@storybook/addon-knobs: ^5.3.3 => 5.3.3
@storybook/addon-links: ^5.3.3 => 5.3.3
@storybook/addon-notes: ^5.3.3 => 5.3.3
@storybook/addon-storyshots: ^5.3.3 => 5.3.3
@storybook/addons: ^5.3.3 => 5.3.3
@storybook/angular: ^5.3.3 => 5.3.3
@storybook/cli: ^5.3.3 => 5.3.3
Ich hatte einen Versuch, das Upgrade durchzuführen, verlor mich aber in der Paketstruktur. 😅 - Das Endergebnis (nachdem dist-Dateien generiert wurden) sollte @storybook/channels/dist/index.d.ts:25
gehen lassen
Von
get hasTransport(): boolean;
Zu
readonly hasTransport: boolean;
Ich hatte das gleiche Problem. Ich löse es, indem ich das Typescript-Paket auf die neueste Version aktualisiere
Ich hatte das gleiche Problem. Ich löse es, indem ich das Typescript-Paket auf die neueste Version aktualisiere
@ Siropo Welche Version? Ich benutze Angular 8.3.20 und Typoskript 3.5.3. Und ich habe den gleichen Fehler beim Versuch, das Projekt zu erstellen.
@IsharaMadawa "Typoskript": "3.7.4"
@IsharaMadawa "Typoskript": "3.7.4"
@siropo Kannst du die package.json hier ablegen?
@IsharaMadawa warum? Versuchen Sie einfach, Ihre Typoskript-Version zu aktualisieren und zu überprüfen, ob sie funktioniert
Wenn Sie eine ältere Version von Angular ausführen, z. B. 8.1.0, wird der folgende Fehler angezeigt
The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.
Wenn Sie eine ältere Version von Angular ausführen, z. B. 8.1.0, wird der folgende Fehler angezeigt
The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.
Ja. Ich habe diesen Fehler bekommen und musste auch Angular aktualisieren
@IsharaMadawa Haben Sie ein Upgrade auf die eckige 9-RC-Version durchgeführt?
Ich sehe den folgenden Fehler
The Angular Compiler requires TypeScript >=3.4.0 and <3.5.0 but 3.x.y was found instead.
auch im Winkel 8.2.3
Dies funktioniert auch für uns mit der neuesten Version von Angular 8.2.x: /
Ich habe die Version 3.7.4 von Typescript und die Version 8.3.21 von Angular und erhalte die gleiche Nachricht! Bitte helfen Sie! :-)
Das Aktualisieren mit ng update --next @angular/cli --force
auf 9.0.0-rc.12
, das typescript @ "3.7.5"
, hat das Problem in der Tat behoben.
Das gleiche Problem mit typescript 3.7.5
und storybook/react 5.3.9
von update --next @ angle / cli --force
npm install typscript @ spätestens
;)
ng update --next @ angle / cli --force
npm install typscript @ spätestens;)
Es hat funktioniert, danke Snargol.
Durch das Upgrade auf Angular 9 (und durch die Erweiterung Typescript 3.7.5) wurde dieses Problem behoben
Ein Upgrade auf TypeScript 3.7.x ist für Bibliotheksverwalter keine gute Option. Dies bedeutet, dass die Änderung von 3.6 auf 3.7 (technisch gesehen eine wichtige Änderung) an unsere Kunden weitergegeben wird und wir nicht davon ausgehen können, dass sie TypeScript problemlos aktualisieren können.
@ndelangen Ich denke, dies kann behoben werden, indem https://github.com/storybookjs/storybook/blob/next/package.json#L218 in typescript@~3.6.0
geändert wird , da typescript@^3.4.0
in 3.7.5
jetzt. Dann können wir das 3.7-Upgrade bis Storybook 6.0 speichern, da es sich tatsächlich um eine bahnbrechende Änderung handelt.
Was denken Sie?
Klingt nach einem Plan @lychyi
Möchten Sie eine PR für die Filiale next
eröffnen?
Wir werden es in master
auswählen und als Patch
Du hast es!
@ndelangen @shilman
Sollte Storybook 6 TypeScript 3.7 verwenden, da es sowieso als bahnbrechende Änderung angeboten wird? Wenn ja, denke ich, dass dies tatsächlich in master
und nicht in next
geändert werden sollte. Die aktuelle PR # 9826 ist gegen next
aber ich kann das noch einmal aufwärmen, um stattdessen auf master
zu verweisen. Lassen Sie es mich wissen.
Wenn TS 3.7+ nicht wirklich wichtig ist, kann es daher auch als Teil von Storybook 7 oder höher aktualisiert werden?
funktioniert bei mir @lychyi. Vielen Dank, dass Sie sich darum gekümmert und darüber nachgedacht haben !!! 💯
Zu: 3.7 in Storybook 6.0. Ich bin mir nicht sicher, ob 3.7 notwendig ist. Ich werde einen der Typoskript-Leute mit diesem @ kroeder @gaetanmaisse sprechen lassen
FWIW, next
bereits 3.7, was zu seinem Vorteil wirklich nette Funktionen wie die optionale Verkettung ( foo?.bar
) und den nullischen Koaleszenzoperator ( foo ?? bar
) bietet. Dies nur in master
für Storybook 5.3.x zu ändern, würde den aktuellen Stand der Dinge am wenigsten stören.
Außerdem habe ich gerade erfahren, dass die Getter / Setter-Emission nur eine bahnbrechende Änderung für "typescript": "<=3.5"
. TS 3.6 hat diese Funktion zukunftssicher gemacht. Eine weitere Option besteht darin, dass Benutzer auf TS3.6 aktualisieren, wenn sie aus irgendeinem Grund kein Upgrade auf TS3.7 durchführen können. Änderungen in TS3.6 zu brechen ist bei weitem nicht so schlimm.
Die Verwendung von TS3.7 schmerzt jedoch Angular-Benutzer, die noch kein Upgrade auf 9.x durchführen können. Angular 8.x ist auf ~3.5.3
gesperrt .
Der wichtigste Kompromiss, den ich vorgeschlagen habe, ist: _ "Würden wir gerne sagen, dass Storybook 6 nicht mit Angular 8 kompatibel ist, damit wir das Neueste und Beste nutzen können, das TypeScript 3.7 zu bieten hat?" _
@lychyi Tolle Zusammenfassung. Uninformiertes Bauchgefühl sagt definitiv 3,7 für 6,0. Nutze die Zukunft !! 😈
@lychyi Danke für die tolle Arbeit! 👏 👏
Würden wir gerne sagen, dass Storybook 6 nicht mit Angular 8 kompatibel ist, damit wir das Neueste und Beste nutzen können, was TypeScript 3.7 zu bieten hat?
Für mich ist es etwas schwierig, SB 6 nicht mit Angular <9 kompatibel zu machen, da Angular 9 nur wenige Tage ausfällt. Viele Pakete sind nicht bereit für diese neue Version, die für Angular-Neulinge eine echte Hauptversion ist, die eine neue Kompilierungs- und Rendering-Pipeline einführt. Daher kann die Migration auf Angular 9 für ein großes Monorepo-Projekt (wie das, mit dem ich arbeite) nicht durchgeführt werden bei der Arbeit).
Da Verbesserungen, die durch TS 3.7 gebracht werden, in SB monorepo derzeit nicht weit verbreitet sind, können wir TS 3.6 möglicherweise beibehalten (also die PR in next
+ Cherry Pick auf master
), bis wir einen Weg zur Arbeit finden um dieses Problem. Vielleicht ein Projekt, das Sie sich ansehen sollten: https://github.com/sandersn/downlevel-dts Es ermöglicht das Generieren alter Definitionsdateien basierend auf neuen 🤷♂
@gaetanmaisse Du bist viel mehr in Kontakt mit der TS / Angular-Welt, also werde ich letztendlich mit deinem Urteil darüber gehen. Ich möchte jedoch auf einige Dinge hinweisen:
1) Die aktuelle Schätzung für SB6 ist Ende April und zu diesem Zeitpunkt wird NG9 einige Monate alt sein
2) Wenn dies tatsächlich eine bahnbrechende Änderung ist und wir sie jetzt nicht ändern, ist das nächste Mal, wenn wir sie ändern können, 7.0, was wahrscheinlich ein Jahr Pause sein wird.
Wenn wir es mit 3.6 reparieren können, ist das natürlich noch besser! In Storybook wäre es großartig, optionale Verkettungen usw. zu verwenden, obwohl dies vermutlich für die Entwicklungsabhängigkeit und nicht für die Abhängigkeit relevant ist.
@shilman Ich stimme dir vollkommen zu 💯 und ich bin ziemlich enttäuscht, dass ich 3.6 bis SB7 behalten muss.
Da SB6 wochenlang immer noch in Alpha ist, sollten wir sagen, dass unser Ziel darin besteht, TS 3.7+ in SB6 zu haben und einen Weg zu finden, um weiterhin mit Angular <= 8 kompatibel zu sein. Und wenn dies nicht möglich ist, siehe Ende März oder Anfang April, wie NG9 übernommen wurde, und diskutieren, wie die Unterstützung von Angular <= 8 eingestellt werden soll.
@gaetanmaisse Ich spiele mit einem Zweig herum, um Downlevel-DTS zu nutzen. Zuerst habe ich es verworfen, weil es kein gepflegter Teil von TypeScript ist, aber nachdem ich ein wenig darüber nachgedacht habe, könnte es eine praktikable Option sein, TS3.7 + verwenden zu lassen und trotzdem mit <= TS3.5-Benutzern kompatibel zu sein. Geben Sie mir ein wenig Zeit, um die Änderungen zu überprüfen, und dann können wir sehen, ob sich die Wartung lohnt. Die Build-Skripte sind ziemlich ordentlich, daher sollte dies nicht zu schwierig sein.
@gaetanmaisse PR ist
Vielen Dank für die Gelegenheit, einen Beitrag zu leisten!
Das Aktualisieren mit
ng update --next @angular/cli --force
auf9.0.0-rc.12
, dastypescript @ "3.7.5"
, hat das Problem in der Tat behoben.
Dies löste auch mein Problem! Vielen Dank!
Ok, aber wie kann dieses Problem ohne Typoskript-Update behoben werden?
@ColCh wir arbeiten daran https://github.com/storybookjs/storybook/pull/9847 es sollte bald verfügbar sein! 👏 👏 @lychyi
Vielen Dank! Diese PR scheint das Problem zu beheben.
Ok, geduldig darauf warten :) keine Eile
Wow das war schnell!
Aber, @gaetanmaisse , können wir erwarten, dass dieses Commit auf die Version
@ColCh Es wird! Wir testen, ob mit der neuesten Version 6.0.0-alpha alles in Ordnung ist, und veröffentlichen sie dann in einer 5.3.x-Version 😉
Oh ok. Danke 🙂
Ich habe die folgende Konfiguration und erhalte immer noch den Fehler:
""
@angular/cli": "7.3.8",
"@angular/compiler-cli": "7.2.8",
"@angular/language-service": "7.2.3",
"@babel/core": "^7.7.7",
"@babel/preset-env": "^7.8.4",
"@babel/preset-typescript": "^7.8.3",
"@ngx-translate/core": "11.0.0",
"@storybook/addon-actions": "5.3.13",
"@storybook/addon-links": "5.3.13",
"@storybook/addon-notes": "5.3.13",
"@storybook/addon-storyshots": "^5.3.13",
"@storybook/addon-viewport": "^5.3.13",
"@storybook/addons": "^5.3.13",
"@storybook/angular": "5.3.13",
"typescript": "^3.2.4"`
ng build --prod
ERROR in node_modules/@storybook/channels/dist/index.d.ts(25,9): error TS1086: An accessor cannot be declared in an ambient context.
@ cnestor1 Der Bugfix wurde in 5.3.x noch nicht veröffentlicht, er sollte in der nächsten sein 😉
Thx, ich habe es falsch verstanden und dachte, es wäre gewesen.
Was ist deine ETA für die nächste Version?
Gibt es auch eine Möglichkeit, eine ältere Version von Storybook zu verwenden, um das Problem zu umgehen, bis es behoben ist?
Angular 9 wurde in meiner Firma nicht überprüft, daher muss ich etwas warten, bevor ich ein Upgrade durchführen kann.
@ cnestor1 ETA in den nächsten 5 Tagen
Ich habe diesen Fehler vorübergehend behoben, indem ich die im Fehler erwähnte nodemodules-Datei (.d.ts-Datei) besucht und sie dann mit Strg + s gespeichert habe. Dadurch wird der Fehler behoben, da Ihr Code kompiliert wird, der Fehler jedoch weiterhin vorhanden ist
Sohn einer Waffe !! Ich habe gerade https://github.com/storybookjs/storybook/releases/tag/v5.3.14 mit PR # 9847 veröffentlicht, das auf dieses Problem verweist. Aktualisieren Sie noch heute, um es auszuprobieren!
Schließen Sie dieses Problem. Bitte öffnen Sie erneut, wenn Sie der Meinung sind, dass noch mehr zu tun ist.
Das gleiche Problem bekommen :)
@rohittagadiya hast du auf den neuesten Stand gebracht?
Versuchen Sie " skipLibCheck": true , in tsconfig.json, z.
"compilerOptions": {
"baseUrl": "src",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
**"skipLibCheck": true,**
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
},
Hoffe es wird dir helfen !!
Versuchen Sie " skipLibCheck": true , zum Beispiel in tsconfig.json.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Ich hoffe es hilft dir !!
Funktioniert !!!! Vielen Dank
Versuchen Sie " skipLibCheck": true , in tsconfig.json, z.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Hoffe es wird dir helfen !!
Funktioniert ziemlich gut, danke <3
Das Hinzufügen von "skipLibCheck": true in den compilerOptions in der Datei tsconfig.json hat für mich funktioniert. Ich danke dir sehr .
Chiming in - skipLibCheck: true
wirkt ein Zauber. Dies ist ideal für diejenigen, die keinen ng update
Mid-QA-Zyklus riskieren können. Vielen Dank!
Versuchen Sie " skipLibCheck": true , in tsconfig.json, z.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Hoffe es wird dir helfen !!
Vielen Dank. Gut arbeiten.
Versuchen Sie " skipLibCheck": true , in tsconfig.json, z.
"compilerOptions": { "baseUrl": "src", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", **"skipLibCheck": true,** "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] },
Hoffe es wird dir helfen !!
Danke <3
Version ändern zu:
"ngx-swiper-wrapper": "~ 8.0.1"
Kann dieses Problem lösen
von update --next @ angle / cli --force
npm install typscript @ spätestens;)
Im mit Winkel 5 ist es möglich, ngx-Datei-Upload zu verwenden
update @ angle-devkit / build-angle
Hilfreichster Kommentar
Versuchen Sie " skipLibCheck": true , in tsconfig.json, z.
Hoffe es wird dir helfen !!