Tslint: Typescript Ketergantungan Peer yang Tidak Terpenuhi@>=1.6.2

Dibuat pada 22 Nov 2015  Β·  43Komentar  Β·  Sumber: palantir/tslint

Saya mencoba untuk menginstal tslint 3.0.0 tetapi terus mengatakan "Ketergantungan Peer yang Tidak Terpenuhi TypeScript@>=1.6.2"

Bagaimana cara menghilangkan ini?

External Question

Komentar yang paling membantu

dependensi rekan tidak diinstal secara otomatis oleh npm v3.x (mereka otomatis di 1.x dan 2.x).

sudahkah anda menginstal typescript bersama tslint ?

Memperbarui

Menempelkan "solusi" di sini sehingga Anda tidak perlu menggulir untuk melihatnya:

Ini adalah bug kegunaan NPM. Satu-satunya solusi adalah menginstal secara bersamaan:

npm install -g tslint typescript

Semua 43 komentar

dependensi rekan tidak diinstal secara otomatis oleh npm v3.x (mereka otomatis di 1.x dan 2.x).

sudahkah anda menginstal typescript bersama tslint ?

Memperbarui

Menempelkan "solusi" di sini sehingga Anda tidak perlu menggulir untuk melihatnya:

Ini adalah bug kegunaan NPM. Satu-satunya solusi adalah menginstal secara bersamaan:

npm install -g tslint typescript

Saya menginstal tslint dan TypeScript di tingkat global. TypeScript saat ini versi 1.6.2

Saya juga mencoba melakukan ini di Windows.

Mendapatkan masalah yang sama pada instalasi bersih di OSX menggunakan distribusi Brew nodejs .

Ini tampaknya tidak terjadi pada kotak CentOS saya.

Berikut ini untuk mereproduksi menggunakan awalan khusus (jadi saya tidak perlu menerbangkan modul saya yang sudah ada):

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

Apakah itu hanya peringatan yang dibuat di sini? Atau apakah tslint global Anda sebenarnya tidak berfungsi jika Anda mencoba menjalankannya? Ini mungkin bug NPM (peringatan positif palsu dari mereka).

Setelah memainkannya sebentar, sepertinya tslint berfungsi dengan baik. Mungkin bug npm. Saya akan memberikan info lebih lanjut setelah beberapa tes lagi.

juga mengalami masalah yang sama

@adidahiya perlu dicatat bahwa tslint v3.0.0 memiliki peerDepedency terdaftar sebagai:

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

yang berarti bahwa jika Anda menggunakan versi TypeScript pra-rilis (atau istilah apa pun yang digunakan npm ), ia menganggap ketergantungan rekan belum terpenuhi:

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

Namun, cabang next (yang merupakan sejumlah komit di belakang v3.0.0 ) memiliki yang berikut:

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

yang sangat senang dengan versi pra-rilis.

Sekali lagi, peringatan ini dapat diabaikan begitu saja. Tetapi perlu diperhatikan bagi orang-orang yang sekarang mencoba menginstal 3.0.0 terhadap TypeScript versi next .

Kecuali jika Anda senang menyertakan opsi ketergantungan rekan pra-rilis dalam rilis utama tslint ? Apakah ada salahnya melakukan ini?

@myitcv ya kami memikirkan hal ini sedikit... Saya lebih suka untuk menjaga rilis stabil tslint terkait dengan rilis stabil TypeScript, dan jika pengguna menginginkan fungsionalitas next , mereka harus menggunakan next distribusi kedua perpustakaan

@adidahiya tapi ini terjadi dengan rilis

@helios1138 itu hanya kesalahan, kan? apakah biner tslint berfungsi meskipun ada kesalahan? apakah Anda menginstal secara global? butuh info lagi...

@helios1138 - jika Anda menginstal keduanya secara global, ini kemungkinan merupakan masalah npm seperti yang telah disebutkan dalam posting lain di utas.

@adidahiya mengerti. Nantikan distribusi next untuk tslint diperbarui :+1:

@gclifford @helios1138 dapatkah Anda mencoba menjalankan npm cache clean sebelum menginstal? Mungkin terkait dengan masalah ini: https://github.com/npm/npm/issues/10365

Saya mengalami beberapa masalah dengan itu, npm memberi saya peringatan itu saat menginstal, tidak dengan gulp-tslint@latest , tetapi dalam kedua kasus ketika mencoba menggunakannya kemudian menunjukkan kesalahan seperti:

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)

Adakah ide bagaimana cara memperbaikinya bahkan setelah npm cache clean ?, jika saya menginstal [email protected] yang menyelesaikan ke 3.6.0 itu berfungsi sehingga seharusnya menjadi masalah dengan repositori gulp-tslint .

@Luchillo sepertinya Anda hanya menginstal gulp-tslint dan bukan tslint di sana

Apakah itu terpisah? mengapa dengan v3.6.0 masih berfungsi? sejauh yang saya mengerti gulp-tslint adalah pembungkus untuk paket tslint npm, bukan?

@Luchillo tidak, ini bukan pembungkus, ini adalah plugin tegukan. gulp-tslint terbaru memiliki tslint sebagai peer dependency , jadi tslint tidak terinstal secara otomatis. Anda perlu npm install keduanya. https://nodejs.org/en/blog/npm/peer-dependencies/

Oh karena saya baru menggunakan v3.6.0 sebelumnya saya tidak tahu tentang perubahannya, tetapi harus diinstal di proyek lokal, global atau keduanya?

Juga ketergantungan rekan untuk [email protected] mengatakan tidak terpenuhi juga, bahkan dengan TypeScript diinstal:

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 telah memperbarui versinya ke 4.x, yang berarti ada perubahan yang melanggar dari 3.x.

untuk peringatan "ketergantungan rekan yang tidak terpenuhi", itulah yang dimaksud dengan utas di atas - saya pikir ini adalah bug NPM. apakah itu hilang jika Anda menghapus, menjalankan npm cache clean , dan menginstal lagi secara global?

@adidahiya
Hai saya mendapatkan peringatan yang sama, bahkan setelah npm cache clean
keduanya diinstal secara global.

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.

Itu aneh. Ini adalah KETERGANTUNGAN PEER UNMET atau asing , lihat di bawah.

Jadi, Anda harus memilih di antara dua kesalahan. Jika Anda benar-benar tidak menyukai kapitalisasi, Anda dapat melakukan npm install typescript atau bahkan npm install typescript --save-dev jika Anda ingin menyisihkan rekan-rekan masa depan modal ini. Tetapi saya memilih untuk mencopot pemasangan lagi, karena semuanya bekerja dengan baik secara umum.

β”œβ”€β”€ [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/>

Masalah yang sama di sini dengan Ubuntu dan 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.

Hanya ingin melaporkan masalah yang sama pada Windows 10, node 5.7.1, npm 3.5.3 dan TypeScript 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.

Saya memiliki masalah yang sama pada Win 8 dengan 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]
TypeScript KETERGANTUNGAN PEER UNMET@>=1.7.3

npm WARN EPEERINVALID [email protected] membutuhkan rekan dari TypeScript@>=1.7.3 tetapi tidak
e dipasang.

Hanya menimpali untuk mengatakan saya memiliki masalah yang sama pada OSX dengan node v5.7.0 dan npm 3.6.0

Saya memiliki masalah yang sama pada OS X dengan npm 3.7.3

Saya pikir ini adalah bug kegunaan NPM, satu-satunya solusi adalah menginstal rekan-rekan secara bersamaan: npm install -g tslint typescript .

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

Menginstalnya secara bersamaan tampaknya berfungsi, tidak ada pesan peringatan! terima kasih @adidahiya

Pembaruan untuk ini, saya memiliki masalah ini, dengan TypeScript Versi 1.8.10.
npm WARN EPEERINVALID [email protected] requires a peer of typescript@>=1.7.3 but none was installed.

@adidahiya tampaknya tslint saat ini tidak dapat diinstal bersama dengan rilis TypeScript 2.1.0-dev pada NPM 2 karena ketergantungan rekan gagal (lihat #1401). apakah ada solusi untuk ini selain memaksa TravisCI (dan pengembang kami) untuk menggunakan NPM 3 untuk rilis Node yang lebih lama?

@Turbo87 hmm, apakah Anda yakin? Baris ini tampaknya menunjukkan bahwa 2.1.0-dev akan berfungsi: https://github.com/palantir/tslint/blob/next/package.json#L49. Apakah Anda tahu NPM v2 bekerja secara berbeda di sini?

ah, jadi masalahnya adalah bahwa kami telah menggunakan batasan ^3.14.0-dev.0 untuk tslint, tetapi sejak 3.14.0 dirilis, itu memenuhi batasan dan menghapus batasan peerDependency yang santai pada TypeScript lagi. apakah itu disengaja? apakah kita melakukan sesuatu yang salah di sini?

@Turbo87 Itu disengaja, meskipun ini adalah produk sampingan yang disayangkan dari cara kami melakukan rilis. Rilis apa pun yang diakhiri dengan -dev.x adalah rilis yang dirancang untuk bekerja dengan TS versi pra-rilis terbaru, khususnya baris 2.x sekarang.

Rilis non -dev.x dirancang untuk bekerja dengan typescript@latest , yang saat ini 1.8.10 sekarang.

Jika Anda ingin bergantung pada versi TSLint terbaru yang sesuai dengan versi TS terbaru, saya sarankan bergantung pada tslint@next atau satu versi spesifik TSLint.

@JKillian terima kasih atas klarifikasinya! karena dependensi rekan hanya bersifat informasional di NPM v3 dan menyebabkan masalah tak terduga ini di NPM v2, apakah masuk akal untuk mengganti ketergantungan rekan dengan catatan kompatibilitas di file README?

Hmm, mungkin saya salah paham, tetapi bukankah masalah Anda dapat diselesaikan hanya dengan mengubah cara Anda menentukan ketergantungan pada TSLint? Saya ragu-ragu untuk menghapus peerDepedendency karena, meskipun sebagian besar bersifat informasi, itu mewakili versi TS yang benar yang dirancang untuk digunakan oleh setiap paket.

bukankah masalah Anda dapat diselesaikan hanya dengan mengubah cara Anda menentukan ketergantungan pada TSLint?

ya, menyematkan ketergantungan akan menyelesaikan masalah, tetapi jelas kami tidak akan mendapatkan pembaruan dengan cara itu.

Saya ragu-ragu untuk menghapus peerDepedendency karena, meskipun sebagian besar bersifat informasi, itu mewakili versi TS yang benar yang dirancang untuk digunakan oleh setiap paket.

dua komentar tentang itu:

  • masalahnya adalah bahwa itu sebenarnya bukan hanya informasi tentang NPM v2. jika Anda ingin itu hanya informasi maka itu harus di README sebagai gantinya. (alternatifnya memaksa pengguna untuk menggunakan NPM v3, tetapi karena NPM v2 dikirimkan hingga Node 4, ini sebenarnya bukan pilihan yang bagus)
  • Anda mengatakan bahwa -dev dirancang untuk bekerja dengan TS-dev, sedangkan non-dev tidak, benar? tetapi jika non-dev didasarkan pada versi dev lalu mengapa non-dev tidak dirancang untuk bekerja dengan TS-dev juga?

Saya baik-baik saja dengan apa pun yang Anda putuskan adalah solusi terbaik, saya hanya ingin memahaminya ...

Kami bahkan dapat mempublikasikan dalam dua paket yang berbeda, tetapi saya merasa itu menyusahkan bagi perpustakaan pihak ketiga yang mengintegrasikan TSLint dan bagi pengguna.

Anda mengatakan bahwa -dev dirancang untuk bekerja dengan TS-dev, sedangkan non-dev tidak, benar? tetapi jika non-dev didasarkan pada versi dev lalu mengapa non-dev tidak dirancang untuk bekerja dengan TS-dev juga?

Kedua versi tersebut _kebanyakan_ sama, tetapi mungkin ada sedikit perbedaan. Versi -dev berisi bit kode yang menangani fitur bahasa baru dengan benar, dan bit kode ini tidak akan berfungsi dengan versi TS yang lebih lama. Bit kode ini juga tidak ada dalam versi non-dev.

Saya khawatir jika peerDependency dihapus, orang akan berakhir dengan versi TS dan TSLint yang tidak kompatibel diinstal dan tidak tahu apa yang sedang terjadi. Hal-hal seperti sekarang ini juga tidak sempurna seperti yang Anda tunjukkan dengan benar, jadi saya tidak yakin dengan solusi terbaik.

Akan lebih baik jika @next akan selalu lebih baru dari @latest . Mungkin ini bisa diotomatisasi oleh CI.

Ini juga crash npm shrinkwrap dengan TypeScript versi ^1.9.0-dev diperlukan oleh @angular/compiler-cli dan @angular/tsc-wrapped - ts 1.8.10 terlalu rendah untuk paket tersebut dan 1.9.0-dev menyebabkan rekan yang tidak valid di tslint.

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

Tidak dapat mulai bekerja bersama dengan 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

Kesalahan muncul di bagian atas vscode: Gagal memuat pustaka tslint. Silakan instal tslint di ruang kerja Anda

Mencoba mengatur "tslint.enable": true|false (di ruang pengguna dan ruang kerja) - itu tidak membantu.

$ npm --version
3.10.3

$ node --version
v6.4.0

Ada saran?

Saya mengubah package.json untuk menggunakan yang berikut ini dan sekarang berfungsi di Node v4 hingga v6:

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

Menutup masalah ini karena ini adalah masalah NPM dan di luar kendali kami

Bunyi bip! TSLint sudah usang dan Anda harus beralih ke TypeScript-eslint ! πŸ€–

Masalah ini sedang dikunci untuk mencegah diskusi lebih lanjut yang tidak perlu. Terima kasih! πŸ‘‹

Apakah halaman ini membantu?
0 / 5 - 0 peringkat