Depuis 7.0.8, lors de l'utilisation
node_modules/@types/node/index.d.ts (50,14) : erreur TS2687 : toutes les déclarations de 'iterator' doivent avoir des modificateurs identiques.
Notre tsconfig :
{
"compilerOptions": {
"target": "es5",
"module": "amd",
"sourceMap": true,
"strictNullChecks": true,
"noImplicitAny": false,
"noImplicitReturns": true,
"noImplicitThis": false,
"noUnusedParameters": false,
"noUnusedLocals": true,
"experimentalDecorators": false,
"emitDecoratorMetadata": false,
"removeComments": true,
"outFile": "../js/ts.js"
},
"exclude": [
"node_modules",
"../node_modules",
"../../node_modules"
]
}
Les conflits se situent entre @types/node ligne 50 et @types/core-js, ligne 504 (iterator:Symbol)
Même problème pour moi aussi. tsconfig :
{
"compilerOptions": {
"allowJs": false,
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"noEmitHelpers": true,
"noUnusedLocals": true,
"noImplicitReturns": true,
"noUnusedParameters": true,
"baseUrl": ".",
"paths": {
"app": [ "src/app" ],
"app/*": [ "src/app/*" ],
"core": [ "src/core" ],
"core/*": [ "src/core/*" ]
},
"typeRoots": [
"node_modules/@types"
]
},
"compileOnSave": false,
"buildOnSave": false,
"exclude": [
"node_modules"
]
}
De toute évidence, le modificateur readonly
avant iterator
, était une erreur. Ou core-js est faux.
Même problème ici, tous mes builds se sont cassés du jour au lendemain.
notre tsconfig
{
"compilerOptions": {
"target": "ES5",
"sourceMap": true,
"typeRoots": [ "node_modules/@types/" ],
"noUnusedLocals": true,
"noUnusedParameters": true,
"declaration": false,
"watch": true
},
"compileOnSave": true,
"include": [
"src/**/*"
],
"exclude": [
".vscode",
"node_modules",
"dist"
]
}
Ayant également ce problème. Nous avons corrigé notre version @types/node à 7.0.7 pour le moment, qui fonctionne toujours. Publier ici principalement pour suivre le problème.
Nous avons également ce même problème. Tout a cassé.
+1 même problème.
Exactement la même chose ici.
Pareil ici,
temporairement épinglé à 7.0.7.
+1 pareil
J'ai le même problème.
Revenir à @types/node": "7.0.7"
résout le problème
fonctionne pour moi maintenant en supprimant core-js et en utilisant @types/ [email protected] et tsconfig : "lib": ["es7"]
Pareil ici. Revenez à @types/node" : « 7.0.7 » résout le problème. Marqué pour suivre la progression.
Devrait être corrigé par #15108. Notez que vous devrez peut-être modifier "lib" dans votre tsconfig car des types tels que Iterator
ne sont plus fournis par core-js
.
@andy-ms, que proposez-vous pour remplacer "lib" ?
@baywet Ce que devrait être lib
dépend de votre projet. Par exemple, mon projet se compile sur ES5 mais a besoin de core-js
pour polyremplir certaines fonctionnalités ES6. C'est mon lib
:
"lib": [
"es6"
"dom"
]
Consultez --lib
dans la documentation sur les options du
quel fichier dois-je modifier exactement la version de @types/node": "7.0.7" ?
Une recherche dans le répertoire révèle que j'ai 2 entrées de ce type :
lequel dois-je changer ou dois-je changer les deux ?
Ceux-ci sont tous les deux dans node_modules
, ils ne sont donc vraisemblablement pas archivés et ne peuvent pas être modifiés directement. L'outil d'installation que vous utilisez (par exemple npm
ou jspm
) doit avoir une documentation décrivant comment installer les packages et définir leurs versions.
Mais comme l'indique la discussion ci-dessus, il est préférable d'utiliser les versions les plus récentes de toutes les bibliothèques et de définir correctement --lib
dans votre tsconfig.json
.
Une installation correcte aura une version avec ^ comme premier caractère dans package.json (s), afin d'obtenir la dernière version. Concernant les problèmes @types et libs en général comme celui mentionné ici, une fois qu'il est corrigé, supprimez d'abord tous les répertoires node_modules (chemin principal du projet, chemin des clients, etc.), puis installez npm dans chaque répertoire concerné, puis relancez tsc ( généralement avec un grunt ou un fichier de construction équivalent), pour vérifier que tout va bien.
Dans les environnements de pré-production et de production, vous devrez peut-être faire la même chose.
@harrietsCreativeDabblets, vous devriez pouvoir inclure les éléments suivants dans les devDependencies de votre projet (dans les ng-start/package.json
):
"@types/node": "7.0.7"
Puisque cela satisfait le jspm-config
semver, cela garantira que votre version de @types/node
est verrouillée sur 7.0.7
. Notez que si cela ne satisfaisait pas le jspm-config
semver, vous vous retrouveriez avec des définitions en double.
Assurez-vous de supprimer vos node_modules
et npm i
après avoir modifié vos projets package.json.
@pe8ter Merci pour la précision. J'ai fini par passer à @types/ node @
"lib": [
"dom",
"dom.iterable",
"es2015",
"scripthost"
],
Même problème ici ; résolu avec la rétrogradation de la version 7.0.7
Même problème ici ; résolu avec la rétrogradation de la version 7.0.7
Il ne semble pas que cela ait été résolu, et utiliser la version 7.0.7 pour toujours n'est pas logique. De plus, épingler les versions n'a pas résolu le problème pour moi. Rien dans ce fil n'a.
@loctrice Quelle est votre version TypeScript à partir de node_modules/typescript/package.json
et la version node à partir de node_modules/@types/node/package.json
?
le script dactylographié est 2.3.4 et le nœud est 8.0.5
@loctrice Je ne peux pas reproduire cela avec ces versions. Je suis dans un répertoire vide et je viens de les installer. Qu'y a-t-il dans votre tsconfig
? Pouvez-vous essayer d'obtenir une petite reproduction?
Au fait, vouliez-vous dire 8.0.50
au lieu de 8.0.5
? Testé avec les deux et je n'ai pas eu d'erreur.
Je ne suis pas sûr de ce que devrait être mon tsconfig. Je me suis penché là-dessus après la mise à niveau des anciennes saisies vers @types, donc je l'ai modifié en fonction des threads que j'ai vus, juste pour voir si quelque chose fonctionne. C'est ma dernière erreur, et avant plus tôt dans la journée, je n'avais pas du tout saisi de bibliothèque. Rien de ce que j'ai ajouté n'a eu d'effet :
{
"Options du compilateur": {
"cible": "es5",
"module": "système",
"moduleResolution": "nœud",
"sourceMap": faux,
"emitDecoratorMetadata": vrai,
"experimentalDecorators": vrai,
"removeComments": vrai,
"noImplicitAny": faux,
"typeRacines": [
"./node_modules/@types"
],
"lib": [
"es2015",
"es6",
"dom",
"dom.itérable"
]
},
Je ne peux pas reproduire une erreur avec ces versions installées et ce tsconfig.json
.
}
)npm install @types/[email protected] [email protected]
echo "" > a.ts
node node_modules/typescript/lib/tsc.js
Cela m'aide à démarrer le dépannage. Je vais commencer à ajouter mes saisies une à la fois pour voir où se situe le problème dans mon projet angular2.
il semble que cela puisse être causé par les typages core-js et es6 que j'avais installés. Si je supprime core-js, j'obtiens des erreurs de fonctionnalités telles que "Promise is a type" que j'ai corrigées hier en épinglant la version de core-js à 0.9.35. Voici mes frappes :
chai : "^4.0.4",
core-js : "0.9.35",
nœud : "^8.0.50",
openlayers : "^4.1.0",
systemjs : "^0.20.6",
Il semble que le conflit soit dû au fait que dans core-js à la ligne 504, il existe une définition pour iterator: symbol
et dans les saisies de nœuds à la ligne 54, il existe une définition de readonly iterator: symbol
changeant l'un ou l'autre manuellement en match fera compiler mon projet.
J'essaie de mettre à jour et de faire fonctionner angular2-electron-boilerplate . J'obtiens cette erreur :
node_modules/@types/node/index.d.ts(79,14): error TS2687: All declarations of 'iterator' must have identical modifiers.
79 readonly iterator: symbol;
~~~~~~~~
phil<strong i="9">@Loki</strong> ~/d/g/s/g/o/angular2-electron-boilerplate (master) [130]>
grep -rnE 'iterator:\s+symbol' node_modules/
node_modules//@types/node/index.d.ts:79: readonly iterator: symbol;
node_modules//typescript/lib/lib.es2015.iterable.d.ts:28: readonly iterator: symbol;
node_modules//typescript/lib/lib.es6.d.ts:4763: readonly iterator: symbol;
node_modules//reflect-metadata/Reflect.ts:95: declare const Symbol: { iterator: symbol, toPrimitive: symbol };
Versions :
@philipbel as -tu
Existe-t-il une solution permanente au problème décrit par @loctrice ?
Non, je ne l'ai pas fait.
Le 2 janvier 2018, à 2:11, Smackzter [email protected] a écrit :
@philipbel as -tu
-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub ou coupez le fil de discussion.
@philipbel On dirait que le problème est dans reflect-metadata
. Curieux de savoir comment vous avez fini par compiler avec Reflect.ts
au lieu de Reflect.d.ts
.
@loctrice en
essayé avec @ types/ [email protected] a bien fonctionné
@thanhngvpt Je ne contribue pas à ce projet, je ne peux donc pas fournir de solution. J'ai finalement été obligé de mettre à niveau mon projet, et avec cela la plupart des packages, et tout semblait bien.
Pour résoudre ce
npm i [email protected] --save
Ma construction est cassée de nulle part !! Ce problème est toujours affiché.
mon env
Ionic:
Ionic CLI : 5.2.3 (C\\\\node_modules\ionic)
Ionic Framework : ionic-angular 3.9.5
@ionic/app-scripts : 3.2.2
Cordova:
Cordova CLI : 8.0.0
Cordova Platforms : android 8.0.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 20 other plugins)
Utility:
cordova-res : 0.8.1
native-run : 1.0.0
System:
Android SDK Tools : 26.1.1 (C:\\\\AppData\Local\Android\Sdk)
NodeJS : v10.15.3 (C:\Program Files\nodejs\node.exe)
npm : 6.4.1
OS : Windows 10
Typescript is 2.5
Oui, rien de ce que je fais ne semble résoudre ce problème. Je n'ai pas lib
définition de tsconfig.json
et je suis complètement déconcerté par les informations fournies dans ce fil. Voici mon fichier tsconfig.json
:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"rootDir": "src",
"outDir": "out",
"forceConsistentCasingInFileNames": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"pretty": true,
"declaration": true
}
}
Que dois-je faire exactement à ce sujet pour arrêter de produire les erreurs de compilateur suivantes sur lesquelles je n'ai absolument aucun contrôle ?
node_modules/vscode/vscode.d.ts:534:3 - error TS2687: All declarations of 'textEditor' must have identical modifiers.
534 textEditor: TextEditor;
~~~~~~~~~~
node_modules/vscode/vscode.d.ts:8363:3 - error TS2687: All declarations of 'body' must have identical modifiers.
8363 body?: any;
~~~~
Dépendances :
"devDependencies": {
"@types/node": "^8.10.59",
"@types/vscode": "^1.1.36",
"rimraf": "^3.0.0",
"tslint": "^5.20.1",
"tslint-config-xo": "^2.0.0",
"typescript": "^3.7.4",
"vscode": "^1.1.36"
}
Il semble que l'ajout de "skipLibCheck": true
à mon tsconfig.json
supprimé les erreurs du compilateur. Cependant, je ne suis pas sûr que ce soit une bonne idée de ne pas effectuer de vérification de type par rapport aux bibliothèques utilisées.
{
"compilerOptions": {
"skipLibCheck": true
}
}
Commentaire le plus utile
@harrietsCreativeDabblets, vous devriez pouvoir inclure les éléments suivants dans les devDependencies de votre projet (dans les
ng-start/package.json
):"@types/node": "7.0.7"
Puisque cela satisfait le
jspm-config
semver, cela garantira que votre version de@types/node
est verrouillée sur7.0.7
. Notez que si cela ne satisfaisait pas lejspm-config
semver, vous vous retrouveriez avec des définitions en double.Assurez-vous de supprimer vos
node_modules
etnpm i
après avoir modifié vos projets package.json.