Tslint: Mecanografiado de dependencia de pares insatisfecha @> = 1.6.2

Creado en 22 nov. 2015  ·  43Comentarios  ·  Fuente: palantir/tslint

Estoy intentando instalar tslint 3.0.0 pero sigue diciendo "Mecanografiado de dependencia de pares no satisfecha @> = 1.6.2"

¿Cómo consigo que esto desaparezca?

External Question

Comentario más útil

npm v3.x no instala automáticamente las dependencias de pares (eran automáticas en 1.xy 2.x).

¿Ha instalado typescript junto con tslint ?

Actualizar

Pegando la "solución" aquí para que no tenga que desplazarse para verla:

Este es un error de usabilidad de NPM. La única solución es instalar simultáneamente:

npm install -g tslint typescript

Todos 43 comentarios

npm v3.x no instala automáticamente las dependencias de pares (eran automáticas en 1.xy 2.x).

¿Ha instalado typescript junto con tslint ?

Actualizar

Pegando la "solución" aquí para que no tenga que desplazarse para verla:

Este es un error de usabilidad de NPM. La única solución es instalar simultáneamente:

npm install -g tslint typescript

Instalé tslint y mecanografiado a nivel global. Versión actual de mecanografiado 1.6.2

También estoy intentando hacer esto en Windows.

Obteniendo el mismo problema en la instalación limpia en OSX usando la distribución Brew de nodejs .

Esto no parece suceder en mi caja de CentOS.

Aquí está para reproducir usando un prefijo personalizado (por lo que no necesito volar mis módulos existentes):

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:~$

¿Es solo una advertencia que se produce aquí? ¿O su tslint global en realidad no funciona si intenta ejecutarlo? Esto puede ser un error de NPM (advertencia falsa positiva de ellos).

Después de jugar con él un poco, parece que tslint está funcionando bien. Podría ser un error de npm. Proporcionaré más información después de algunas pruebas más.

también teniendo el mismo problema

@adidahiya vale la pena señalar que tslint v3.0.0 tiene el peerDepedency listado como:

  "peerDependencies": {
    "typescript": ">=1.6.2"
  }

lo que significa que si está utilizando una versión preliminar (o cualquier término que use npm ) de TypeScript, considera que no se ha cumplido la dependencia de pares:

$ 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]

Sin embargo, la rama next (que es un número de confirmaciones detrás de v3.0.0 ) tiene lo siguiente:

  "peerDependencies": {
    "typescript": ">=1.7.0 || >=1.7.0-dev.20151003 || >=1.8.0-dev"
  }

que está perfectamente satisfecho con la versión preliminar.

Nuevamente, esta advertencia simplemente puede ignorarse. Pero vale la pena señalar para aquellas personas que ahora intentan instalar 3.0.0 contra una versión next de TypeScript.

A menos que esté satisfecho con la inclusión de las opciones de dependencia de pares previas al lanzamiento en las versiones principales de tslint ? ¿Algún daño al hacer esto?

@myitcv sí, pensamos un poco en esto ... Preferiría mantener las versiones estables de tslint vinculadas a las versiones estables de mecanografiado, y si los usuarios quieren la funcionalidad next , deberían usar la next distribución de ambas bibliotecas

@adidahiya, pero esto está sucediendo con la versión estable actual de mecanografiado

@ helios1138 es solo un error, ¿verdad? ¿Funciona su binario tslint pesar del error? está instalando a nivel mundial? Necesito más información ...

@ helios1138 : si está instalando ambos a nivel mundial, es probable que se npm como se ha mencionado en otras publicaciones del hilo.

@adidahiya entendió. Esperamos que se actualice la distribución next de tslint : +1:

@gclifford @ helios1138 ¿puedes intentar ejecutar npm cache clean antes de instalar? Puede estar relacionado con este problema: https://github.com/npm/npm/issues/10365

Tengo algún problema con él, npm me da esa advertencia al instalar, no lo hace con gulp-tslint@latest , pero en ambos casos cuando intento usarlo, muestra un error como:

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)

¿Alguna idea de cómo solucionarlo incluso después de npm cache clean ?, Si instalo [email protected] que se resuelve en 3.6.0, funciona, por lo que debería ser un problema con el repositorio de gulp-tslint .

@Luchillo parece que solo instaló gulp-tslint y no tslint allí

¿Se separó? ¿Por qué con v3.6.0 todavía funciona? Por lo que tengo entendido, gulp-tslint es un contenedor para el paquete tslint npm, ¿no es así?

@Luchillo no, no es un contenedor, es un complemento de gulp. el último gulp-tslint tiene tslint como una dependencia de pares , por lo que tslint no se instala automáticamente. necesitas npm install ambos. https://nodejs.org/en/blog/npm/peer-dependencies/

Oh, como acabo de usar v3.6.0 antes, no sabía sobre el cambio, pero debería instalarse en el proyecto local, global o en ambos.

Además, la dependencia de pares para [email protected] también dice no

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 ha actualizado su versión a 4.x, lo que significa que hay cambios importantes desde 3.x.

En cuanto a la advertencia de "dependencia de pares no satisfecha", de eso se trata el hilo anterior: creo que es un error de NPM. ¿desaparece si desinstala, ejecuta npm cache clean y vuelve a instalar globalmente?

@adidahiya
Hola, recibo la misma advertencia, incluso después de npm cache clean
ambos están instalados globalmente.

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.

Es raro. Es una DEPENDENCIA DE PARES INCOMPARABLE o ajena , ver más abajo.

Entonces tienes que elegir entre dos errores. Si realmente no le gusta el uso de mayúsculas, puede hacer npm install typescript o incluso un npm install typescript --save-dev si desea ahorrarle a futuros colegas estos capitales. Pero elijo desinstalar de nuevo, ya que todo funcionaba bien en general.

├── [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/>

El mismo problema aquí con Ubuntu y 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.

Solo quería informar el mismo problema en Windows 10, nodo 5.7.1, npm 3.5.3 y mecanografiado 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.

Tengo el mismo problema en Win 8 con 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]
└── Mecanografiado de DEPENDENCIA DE PARES INMETRIDOS @> = 1.7.3

npm WARN EPEERINVALID [email protected] requiere un par de mecanografiado @> = 1.7.3 pero no
e estaba instalado.

Solo intervengo para decir que tengo el mismo problema en OSX con el nodo v5.7.0 y npm 3.6.0

Tengo el mismo problema en OS X con npm 3.7.3

Creo que este es un error de usabilidad de NPM, la única solución es instalar los pares al mismo tiempo: npm install -g tslint typescript .

relacionado: https://github.com/npm/npm/issues/9857

Instalarlos al mismo tiempo parece funcionar, ¡ningún mensaje de advertencia! gracias @adidahiya

Una actualización sobre esto, tengo este problema, con la versión 1.8.10 de mecanografiado.
npm WARN EPEERINVALID [email protected] requires a peer of typescript@>=1.7.3 but none was installed.

@adidahiya , parece que tslint actualmente no se puede instalar junto con la versión mecanografiada 2.1.0-dev en NPM 2 debido a que falla la dependencia de pares (ver # 1401). ¿Existe una solución alternativa para esto que no sea obligar a TravisCI (y a nuestros desarrolladores) a usar NPM 3 para versiones anteriores de Node?

@ Turbo87 hmm, ¿estás seguro? Esta línea parece sugerir que 2.1.0-dev funcionaría: https://github.com/palantir/tslint/blob/next/package.json#L49. ¿Sabes que NPM v2 funciona de manera diferente aquí?

ah, entonces la cosa es que hemos estado usando la restricción ^3.14.0-dev.0 para tslint, pero desde que se lanzó 3.14.0 , satisface la restricción y eliminó la restricción relajada peerDependency en el mecanografiado nuevamente. ¿Fue eso intencional? ¿estamos haciendo algo mal aquí?

@ Turbo87 Fue intencional, aunque es un subproducto desafortunado de cómo hacemos lanzamientos. Cualquier lanzamiento que termine en -dev.x es un lanzamiento diseñado para funcionar con las últimas versiones preliminares de TS, específicamente la línea 2.x en este momento.

Cualquier versión que no sea -dev.x está diseñada para funcionar con typescript@latest , que actualmente es 1.8.10 en este momento.

Si desea depender de las versiones más recientes de TSLint que van con las versiones más recientes de TS, le recomiendo que dependa de tslint@next o de una única versión específica de TSLint.

@JKillian ¡ gracias por la aclaración! dado que las dependencias entre pares son solo informativas en NPM v3 y están causando estos problemas inesperados en NPM v2, ¿tendría sentido reemplazar la dependencia entre pares con una nota de compatibilidad en el archivo README?

Mmm, tal vez no lo entiendo, pero ¿no se puede resolver su problema simplemente cambiando la forma en que especifica la dependencia en TSLint? No me atrevo a eliminar peerDepedendency porque, si bien es principalmente informativo, representa las versiones correctas de TS para las que está diseñado cada paquete.

¿No se puede resolver su problema simplemente cambiando la forma en que especifica la dependencia en TSLint?

sí, fijar la dependencia resolvería el problema, pero obviamente no obtendremos ninguna actualización de esa manera.

No me atrevo a eliminar peerDepedendency porque, si bien es principalmente informativo, representa las versiones correctas de TS para las que está diseñado cada paquete.

dos comentarios sobre eso:

  • el problema es que, de hecho, no es solo informativo en NPM v2. si desea que sea solo informativo, entonces debería estar en el archivo README. (la alternativa es obligar a los usuarios a usar NPM v3, pero dado que NPM v2 se envió hasta el Nodo 4, esta no es realmente una gran opción)
  • dijiste que -dev está diseñado para funcionar con TS-dev, mientras que no-dev no lo es, ¿correcto? pero si non-dev se basa en las versiones dev, ¿por qué no se diseñaría non-dev para trabajar también con TS-dev?

Estoy bien con lo que decidas que es la mejor solución, solo me gustaría entenderlo ... 😉

Incluso podríamos ir tan lejos como para publicar en dos paquetes diferentes, pero siento que eso es un problema para las bibliotecas de terceros que integran TSLint y para los usuarios.

dijiste que -dev está diseñado para funcionar con TS-dev, mientras que non-dev no lo es, ¿correcto? pero si non-dev se basa en las versiones dev, ¿por qué no se diseñaría non-dev para trabajar también con TS-dev?

Bueno, las dos versiones son _ en su mayoría_ iguales, pero puede que sean un poco divergentes. Las versiones -dev contienen fragmentos de código que manejan correctamente las características del nuevo lenguaje, y estos fragmentos de código no funcionarían con una versión anterior de TS. Estos bits de código tampoco están en las versiones que no son de desarrollo.

Me preocupa que si se eliminara peerDependency, las personas terminarían con versiones no compatibles de TS y TSLint instaladas y no sabrían qué estaba pasando. Las cosas como están en este momento tampoco son perfectas, como señala correctamente, por lo que no estoy seguro de cuál es la mejor solución.

Sería bueno si @next siempre fuera más nuevo que @latest . Quizás esto pueda ser automatizado por CI.

Esto también falla npm shrinkwrap con la versión mecanografiada ^ 1.9.0-dev requerida por @angular/compiler-cli y @angular/tsc-wrapped - ts 1.8.10 es demasiado bajo para esos paquetes y 1.9.0-dev provoca un par no válido en tslint.

Editar: 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

No puedo empezar a trabajar con 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

Aparece un error en la parte superior de vscode: no se pudo cargar la biblioteca tslint. Instale tslint en su espacio de trabajo

Intenté establecer "tslint.enable": verdadero | falso (en el espacio de usuario y el espacio de trabajo); no ayudó.

$ npm --version
3.10.3

$ node --version
v6.4.0

¿Algún consejo?

Cambié mi package.json para usar lo siguiente y ahora funciona en Node v4 hasta v6:

  "devDependencies": {
    "tslint": "3.15.0-dev.0",
    "typescript": "^2.1.0-dev.20160827"
  },

Cerrando este problema porque es un problema de NPM y está fuera de nuestro control

🤖 ¡Bip boop! 👉 TSLint está en desuso 👈 ¡y debería cambiar a mecanografiado-eslint ! 🤖

🔒 Este tema se está bloqueando para evitar más discusiones innecesarias. ¡Gracias! 👋

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

CSchulz picture CSchulz  ·  3Comentarios

denkomanceski picture denkomanceski  ·  3Comentarios

avanderhoorn picture avanderhoorn  ·  3Comentarios

dashmug picture dashmug  ·  3Comentarios

jacob-robertson picture jacob-robertson  ·  3Comentarios