Saya mencoba untuk menginstal tslint 3.0.0 tetapi terus mengatakan "Ketergantungan Peer yang Tidak Terpenuhi TypeScript@>=1.6.2"
Bagaimana cara menghilangkan ini?
dependensi rekan tidak diinstal secara otomatis oleh npm v3.x (mereka otomatis di 1.x dan 2.x).
sudahkah anda menginstal typescript
bersama tslint
?
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
.
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:
-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! π
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
bersamatslint
?Memperbarui
Menempelkan "solusi" di sini sehingga Anda tidak perlu menggulir untuk melihatnya:
Ini adalah bug kegunaan NPM. Satu-satunya solusi adalah menginstal secara bersamaan: