J'essaie d'installer tslint 3.0.0 mais il n'arrĂȘte pas de dire "Unmet Peer Dependency typescript@>=1.6.2"
Comment faire pour que ça s'en aille ?
les dépendances homologues ne sont pas installées automatiquement par npm v3.x (elles étaient automatiques dans 1.x et 2.x).
avez-vous installé typescript
cÎté de tslint
?
Collez la "solution" ici pour ne pas avoir à faire défiler pour la voir :
Il s'agit d'un bug d'utilisabilité NPM. La seule solution est d'installer simultanément :
npm install -g tslint typescript
J'ai installé à la fois tslint et tapuscrit au niveau mondial. Version tapuscrite actuelle 1.6.2
J'essaye aussi de le faire sous Windows.
Obtenir le mĂȘme problĂšme lors d'une installation propre sur OSX en utilisant la distribution Brew de nodejs
.
Cela ne semble pas se produire sur ma boĂźte CentOS.
Voici à reproduire en utilisant un préfixe personnalisé (donc je n'ai pas besoin de souffler mes modules existants):
leonyu-workstation:~$ npm config set prefix hihi
leonyu-workstation:~$ npm list -g
leonyu-workstation:~$ npm install typescript -g
/Users/leonyu/hihi/bin/tsc -> /Users/leonyu/hihi/lib/node_modules/typescript/bin/tsc
/Users/leonyu/hihi/bin/tsserver -> /Users/leonyu/hihi/lib/node_modules/typescript/bin/tsserver
/Users/leonyu/hihi/lib
âââ [email protected]
leonyu-workstation:~$ npm install tslint -g
/Users/leonyu/hihi/bin/tslint -> /Users/leonyu/hihi/lib/node_modules/tslint/bin/tslint
/Users/leonyu/hihi/lib
ââ⏠[email protected]
â ââ⏠[email protected]
â â ââ⏠[email protected]
â â ââ⏠[email protected]
â â â âââ [email protected]
â â âââ [email protected]
â â ââ⏠[email protected]
â â â ââ⏠[email protected]
â â â âââ [email protected]
â â â âââ [email protected]
â â âââ [email protected]
â ââ⏠[email protected]
â â âââ [email protected]
â â âââ [email protected]
â âââ [email protected]
âââ UNMET PEER DEPENDENCY typescript@>=1.6.2
npm WARN EPEERINVALID [email protected] requires a peer of typescript@>=1.6.2 but none was installed.
leonyu-workstation:~$
Est-ce juste un avertissement qui est produit ici ? Ou est-ce que votre tslint
global ne fonctionne pas si vous essayez de l'exĂ©cuter ? Cela peut ĂȘtre un bogue NPM (faux avertissement positif de leur part).
AprÚs avoir joué un peu avec, il semble que tslint
fonctionne correctement. Peut-ĂȘtre un bug npm. Je donnerai plus d'informations aprĂšs quelques tests supplĂ©mentaires.
a aussi le meme probleme
@adidahiya vaut la peine de noter que tslint v3.0.0
a le peerDepedency
répertorié comme:
"peerDependencies": {
"typescript": ">=1.6.2"
}
ce qui signifie que si vous utilisez une version préliminaire (ou quel que soit le terme utilisé par npm
) de TypeScript, il considÚre que la dépendance aux pairs n'a pas été satisfaite :
$ npm install --save-dev [email protected]
npm WARN install Couldn't install optional dependency: Unsupported
[email protected] /home/myitcv/tmp/typescript_test
âââ [email protected]
âââ UNMET PEER DEPENDENCY [email protected]
Cependant, la branche next
(qui est un certain nombre de commits derriĂšre v3.0.0
) a ce qui suit :
"peerDependencies": {
"typescript": ">=1.7.0 || >=1.7.0-dev.20151003 || >=1.8.0-dev"
}
qui est parfaitement satisfait de la version préliminaire.
Encore une fois, cet avertissement peut simplement ĂȘtre ignorĂ©. Mais il convient de noter pour ces personnes qui essaient maintenant d'installer 3.0.0
contre une version next
de TypeScript.
à moins que vous ne soyez content d'inclure les options de dépendance entre pairs de pré-version dans les versions principales de tslint
? Y a-t-il mal Ă faire cela ?
@myitcv ouais nous y avons pensé un peu... Je préférerais garder les versions stables de tslint liées aux versions stables de typescript, et si les utilisateurs veulent la fonctionnalité next
, ils devraient utiliser le next
distribution des deux bibliothĂšques
@adidahiya mais cela se produit avec la version stable actuelle du
@ helios1138 c'est juste une erreur, non ? votre binaire tslint
fonctionne-t-il malgré l'erreur ? installez-vous globalement ? besoin de plus d'infos...
@ helios1138 - si vous installez les deux Ă l'Ă©chelle mondiale, il s'agit probablement d'un problĂšme de npm
, comme cela a été mentionné dans d'autres articles du fil.
@adidahiya a compris. Attendez-vous Ă la mise Ă jour de la distribution next
pour tslint
 :+1 :
@gclifford @helios1138 pouvez-vous essayer d'exécuter npm cache clean
avant l'installation ? Peut-ĂȘtre liĂ© Ă ce problĂšme : https://github.com/npm/npm/issues/10365
J'ai un problĂšme avec cela, npm me donne cet avertissement lors de l'installation, ce n'est pas le cas avec gulp-tslint@latest
, mais dans les deux cas, lorsque j'essaie de l'utiliser, une erreur du type :
aplicaciones2@MacBook-Pro-de-aplicacioes-2:~/Documents/Programming/OSGroup/taoappionic$ npm i --save gulp-tslint<strong i="7">@latest</strong>
npm WARN deprecated [email protected]: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^3.0.0.
npm WARN [email protected] requires a peer of tslint@^3 || >=3.1.0-dev but none was installed.
npm WARN [email protected] No repository field.
npm WARN [email protected] No license field.
aplicaciones2@MacBook-Pro-de-aplicacioes-2:~/Documents/Programming/OSGroup/taoappionic$ gulp tslint
module.js:340
throw err;
^
Error: Cannot find module 'tslint'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (/Users/aplicaciones2/Documents/Programming/OSGroup/taoappionic/node_modules/gulp-tslint/index.js:7:14)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
Des idĂ©es sur la façon de rĂ©parer mĂȘme aprĂšs npm cache clean
?, si j'installe [email protected]
qui rĂ©sout Ă 3.6.0 cela fonctionne donc cela devrait ĂȘtre un problĂšme avec le rĂ©fĂ©rentiel de gulp-tslint
.
@Luchillo semble que vous n'ayez installé que gulp-tslint et pas tslint là -bas
S'est-il séparé ? pourquoi avec v3.6.0 fonctionne toujours ? pour autant que je sache, gulp-tslint est un wrapper pour le package tslint npm, n'est-ce pas?
@Luchillo non, ce n'est pas un wrapper, c'est un plugin gulp. le dernier gulp-tslint a tslint comme dépendance de pair , donc tslint ne s'installe pas automatiquement. vous devez npm install
deux. https://nodejs.org/en/blog/npm/peer-dependencies/
Oh, comme je venais d'utiliser la v3.6.0 avant, je n'Ă©tais pas au courant du changement, mais il devrait ĂȘtre installĂ© dans un projet local, global ou les deux ?
De plus, la dĂ©pendance entre homologues pour [email protected] indique Ă©galement non satisfaite, mĂȘme avec le type de script installĂ©Â :
aplicaciones2@MacBook-Pro-de-aplicacioes-2:~/Documents/Programming/OSGroup/taoappionic$ npm i -g typescript
/usr/local/bin/tsc -> /usr/local/lib/node_modules/typescript/bin/tsc
/usr/local/bin/tsserver -> /usr/local/lib/node_modules/typescript/bin/tsserver
/usr/local/lib
âââ [email protected]
aplicaciones2@MacBook-Pro-de-aplicacioes-2:~/Documents/Programming/OSGroup/taoappionic$ npm i -g tslint
/usr/local/bin/tslint -> /usr/local/lib/node_modules/tslint/bin/tslint
/usr/local/lib
âââ [email protected]
âââ UNMET PEER DEPENDENCY typescript@>=1.7.3
npm WARN [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
npm WARN In [email protected] replacing bundled version of findup-sync with [email protected]
npm WARN In [email protected] replacing bundled version of optimist with [email protected]
npm WARN In [email protected] replacing bundled version of underscore.string with [email protected]
npm WARN In [email protected] replacing bundled version of glob with [email protected]
npm WARN In [email protected] replacing bundled version of once with [email protected]
npm WARN In [email protected] replacing bundled version of inherits with [email protected]
npm WARN In [email protected] replacing bundled version of inflight with [email protected]
npm WARN In [email protected] replacing bundled version of minimatch with [email protected]
npm WARN In [email protected] replacing bundled version of wrappy with [email protected]
npm WARN In [email protected] replacing bundled version of brace-expansion with [email protected]
npm WARN In [email protected] replacing bundled version of concat-map with [email protected]
npm WARN In [email protected] replacing bundled version of balanced-match with [email protected]
npm WARN In [email protected] replacing bundled version of wordwrap with [email protected]
npm WARN In [email protected] replacing bundled version of minimist with [email protected]
@Luchillo gulp -tslint a mis Ă jour sa version vers 4.x, ce qui signifie qu'il y a des changements importants par rapport Ă 3.x.
en ce qui concerne l'avertissement "dépendance aux pairs non satisfaite", c'est le sujet du fil ci-dessus - je pense que c'est un bogue NPM. disparaßt-il si vous désinstallez, exécutez npm cache clean
et réinstallez globalement ?
@adidahiya
Salut, je reçois le mĂȘme avertissement, mĂȘme aprĂšs npm cache clean
les deux sont installés dans le monde entier.
npm ls -g
âââ [email protected]
âââ [email protected]
when installing
npm WARN EPEERINVALID [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
C'est Ă©trange. Il s'agit soit d'une DEPENDANCE NON METTRE PAR LES PAIRS , soit d'un Ă©tranger , voir ci-dessous.
Vous devez donc choisir entre deux erreurs. Si vous n'aimez vraiment pas les majuscules, vous pouvez faire des npm install typescript
ou mĂȘme un npm install typescript --save-dev
si vous voulez épargner ces majuscules aux futurs collÚgues. Mais j'ai choisi de désinstaller à nouveau, car les choses fonctionnaient généralement bien.
âââ [email protected] extraneous <---
âââ [email protected]
âââ [email protected]
âââ [email protected] (git+https://4c2b0edc3e30fscrambled:[email protected]/company/project/.git#f9fscrambled101)
npm ERR! extraneous: [email protected] C:\Code\project\node_modules\typescript
npm ERR! peer dep missing: kerberos@~0.0, required by [email protected]
C:\Code\project>npm uninstall typescript
- [email protected] node_modules\typescript
[email protected] C:\Code\project\
âââ [email protected]
âââ [email protected]
âââ [email protected]
âââ UNMET PEER DEPENDENCY typescript@>=1.7.3 <---
npm WARN [email protected] requires a peer of kerberos@~0.0 but none was installed.
npm WARN [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
C:\Code\project/>
MĂȘme problĂšme ici avec Ubuntu et npm 3.3.12
sim@sim-desktop:~/code/btsync/HTML/refugees$ sudo npm install -g typescript
/usr/bin/tsc -> /usr/lib/node_modules/typescript/bin/tsc
/usr/bin/tsserver -> /usr/lib/node_modules/typescript/bin/tsserver
/usr/lib
âââ [email protected]
sim@sim-desktop:~/code/btsync/HTML/refugees$ sudo npm install -g tslint
/usr/bin/tslint -> /usr/lib/node_modules/tslint/bin/tslint
/usr/lib
âââ [email protected]
âââ UNMET PEER DEPENDENCY typescript@>=1.7.3
npm WARN EPEERINVALID [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
Je voulais juste signaler le mĂȘme problĂšme sur Windows 10, nĆud 5.7.1, npm 3.5.3 et tapuscrit 1.8.7 :
C:\Users\cmezzasalma\Sviluppo\SmartScarlett>npm install -g typescript
C:\Users\cmezzasalma\AppData\Roaming\npm\tsc -> C:\Users\cmezzasalma\AppData\Roaming\npm\node_modules\typescript\bin\tsc
C:\Users\cmezzasalma\AppData\Roaming\npm\tsserver -> C:\Users\cmezzasalma\AppData\Roaming\npm\node_modules\typescript\bin\tsserver
C:\Users\cmezzasalma\AppData\Roaming\npm
âââ [email protected]
C:\Users\cmezzasalma\Sviluppo\SmartScarlett>npm install -g tslint
C:\Users\cmezzasalma\AppData\Roaming\npm\tslint -> C:\Users\cmezzasalma\AppData\Roaming\npm\node_modules\tslint\bin\tslint
C:\Users\cmezzasalma\AppData\Roaming\npm
âââ [email protected]
âââ UNMET PEER DEPENDENCY typescript@>=1.7.3
npm WARN [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
J'ai le mĂȘme problĂšme sur Win 8 avec TypeScript 1.8.7
C:\Windows\system32>npm install -g tslint
C:\Users\indika\AppData\Roamingnpmtslint -> C:\Users\indika\AppData\Roaming\
npmnode_modulestslint\bintslint
C:\Users\indika\AppData\Roamingnpm
[email protected]
âââ DĂPENDANCE DES PAIRS NON METTRE EN UVRE typescript@>=1.7.3
npm WARN EPEERINVALID [email protected] nécessite un pair de typescript@>=1.7.3 mais non
e a été installé.
Juste pour dire que j'ai le mĂȘme problĂšme sur OSX avec le nĆud v5.7.0 et npm 3.6.0
J'ai le mĂȘme problĂšme sur OS X avec npm 3.7.3
Je pense qu'il s'agit d'un bug d'utilisabilité NPM, la seule solution étant d'installer les pairs simultanément : npm install -g tslint typescript
.
connexe : https://github.com/npm/npm/issues/9857
Les installer simultanément semble fonctionner, aucun message d'avertissement ! merci @adidahiya
Une mise à jour à ce sujet, j'ai ce problÚme, avec la version dactylographiée 1.8.10.
npm WARN EPEERINVALID [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
@adidahiya, il semble que tslint ne soit actuellement pas installable avec la version typescript 2.1.0-dev sur NPM 2 en raison de l'échec de la dépendance aux pairs (voir # 1401). existe-t-il une solution de contournement autre que de forcer TravisCI (et nos développeurs) à utiliser NPM 3 pour les anciennes versions de Node ?
@Turbo87 hmm, tu es sûr ? Cette ligne semble suggérer que 2.1.0-dev fonctionnerait : https://github.com/palantir/tslint/blob/next/package.json#L49. Savez-vous que NPM v2 se comporte différemment ici ?
ah, donc le fait est que nous avons utilisé la contrainte ^3.14.0-dev.0
pour tslint, mais depuis que 3.14.0
été publié, il satisfait à la contrainte et a supprimé à nouveau la contrainte détendue peerDependency sur le typescript. était-ce intentionnel ? faisons-nous quelque chose de mal ici ?
@Turbo87 C'était intentionnel, bien que ce soit un sous-produit malheureux de la façon dont nous réalisons les versions. Toute version se terminant par -dev.x
est une version conçue pour fonctionner avec les derniÚres versions préliminaires de TS, en particulier la ligne 2.x en ce moment.
Toute version non -dev.x
est conçue pour fonctionner avec typescript@latest
, qui est actuellement la version 1.8.10.
Si vous souhaitez vous fier aux versions les plus récentes de TSLint qui vont avec les versions les plus récentes de TS, je vous recommande de dépendre de tslint@next
ou d'une seule version spécifique de TSLint.
@JKillian merci pour la clarification! étant donné que les dépendances entre homologues ne sont qu'informatives dans NPM v3 et causent ces problÚmes inattendus dans NPM v2, serait-il judicieux de remplacer la dépendance entre homologues par une note de compatibilité dans le fichier README à la place ?
Hmm, peut-ĂȘtre que je comprends mal, mais votre problĂšme ne peut-il pas ĂȘtre rĂ©solu simplement en changeant la façon dont vous spĂ©cifiez la dĂ©pendance sur TSLint ? J'hĂ©site Ă supprimer le peerDepedendency car, bien que principalement informatif, il reprĂ©sente les versions correctes de TS avec lesquelles chaque package est conçu pour fonctionner.
votre problĂšme ne peut-il pas ĂȘtre rĂ©solu simplement en changeant la façon dont vous spĂ©cifiez la dĂ©pendance sur TSLint ?
oui, épingler la dépendance résoudrait le problÚme, mais évidemment, nous n'obtiendrons aucune mise à jour de cette façon.
J'hésite à supprimer le peerDepedendency car, bien que principalement informatif, il représente les versions correctes de TS avec lesquelles chaque package est conçu pour fonctionner.
deux commentaires Ă ce sujet :
-dev
est conçu pour fonctionner avec TS-dev, alors que non-dev ne l'est pas, n'est-ce pas ? mais si non-dev est basé sur les versions dev, alors pourquoi non-dev ne serait-il pas conçu pour fonctionner également avec TS-dev ?Je suis d'accord avec tout ce que vous décidez est la meilleure solution, j'aimerais juste le comprendre...
Nous pourrions mĂȘme aller jusqu'Ă publier dans deux packages diffĂ©rents, mais j'ai l'impression que c'est pĂ©nible pour les bibliothĂšques tierces qui intĂšgrent TSLint et pour les utilisateurs.
vous avez dit que -dev est conçu pour fonctionner avec TS-dev, alors que non-dev ne l'est pas, n'est-ce pas ? mais si non-dev est basé sur les versions dev, alors pourquoi non-dev ne serait-il pas conçu pour fonctionner également avec TS-dev ?
Eh bien, les deux versions sont _principalement_ les mĂȘmes, mais il se peut qu'elles soient un peu divergentes. Les versions -dev
contiennent des morceaux de code qui gÚrent correctement les nouvelles fonctionnalités du langage, et ces morceaux de code ne fonctionneraient pas avec une ancienne version de TS. Ces morceaux de code ne sont pas non plus dans les versions non-dev.
Je crains que si la peerDependency était supprimée, les gens se retrouveraient avec des versions non compatibles de TS et TSLint installées et ne sauraient pas ce qui se passait. Les choses telles qu'elles sont actuellement ne sont pas parfaites non plus, comme vous l'avez souligné à juste titre, je ne suis donc pas sûr de la meilleure solution.
Ce serait bien si @next
était toujours plus récent que @latest
. Peut-ĂȘtre que cela peut simplement ĂȘtre automatisĂ© par CI.
Cela plante Ă©galement npm shrinkwrap
avec la version dactylographiée ^1.9.0-dev requise par @angular/compiler-cli
et @angular/tsc-wrapped
- ts 1.8.10 est trop faible pour ces packages et 1.9.0-dev provoque un homologue invalide sur tslint.
Modifier : npm 3.10.x
+1
+-- [email protected]
`-- UNMET PEER DEPENDENCY typescript@>=1.7.3
npm WARN [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
C:\Windows\system32>tsc -v
Version 1.8.10
Impossible de commencer Ă travailler avec vscode 1.4.0
sudo npm i tslint -g
......
âââ UNMET PEER DEPENDENCY typescript@>=1.7.3
npm WARN [email protected] requires a peer of typescript@>=1.7.3 but none was installed.
$ tslint --version
3.15.1
Une erreur apparaßt en haut de vscode : échec du chargement de la bibliothÚque tslint. Veuillez installer tslint dans votre espace de travail
J'ai essayé de définir "tslint.enable": true|false (dans l'espace utilisateur et l'espace de travail) - cela n'a pas aidé.
$ npm --version
3.10.3
$ node --version
v6.4.0
Aucun conseil?
J'ai modifié mon package.json
pour utiliser ce qui suit et cela fonctionne maintenant sur Node v4 jusqu'Ă v6Â :
"devDependencies": {
"tslint": "3.15.0-dev.0",
"typescript": "^2.1.0-dev.20160827"
},
ClĂŽturer ce problĂšme car il s'agit d'un problĂšme de NPM et hors de notre contrĂŽle
Bip boop ! đ TSLint est obsolĂšte đ et vous devriez passer Ă typescript-eslint ! đ€
đ Ce problĂšme est verrouillĂ© pour Ă©viter d'autres discussions inutiles. Merci! đ
Commentaire le plus utile
les dépendances homologues ne sont pas installées automatiquement par npm v3.x (elles étaient automatiques dans 1.x et 2.x).
avez-vous installé
typescript
cÎté detslint
?Mettre Ă jour
Collez la "solution" ici pour ne pas avoir à faire défiler pour la voir :
Il s'agit d'un bug d'utilisabilité NPM. La seule solution est d'installer simultanément :