Yarn: Ganti penggunaan konstruktor Buffer baru yang tidak digunakan lagi / tidak aman

Dibuat pada 7 Mar 2018  ·  84Komentar  ·  Sumber: yarnpkg/yarn

Bagaimana perilaku saat ini?

yarn menggunakan konstruktor new Buffer() tidak digunakan lagi dan menyebabkan peringatan penghentian ketika dijalankan dengan NODE_PENDING_DEPRECATION=1 .

$ ag '\bBuffer\('
src/registries/npm-registry.js
340:        const pw = new Buffer(String(password), 'base64').toString();
341:        return 'Basic ' + new Buffer(String(username) + ':' + pw).toString('base64');

src/util/fs.js
835:const cr = new Buffer('\r', 'utf8')[0];
836:const lf = new Buffer('\n', 'utf8')[0];

Apa perilaku yang diharapkan?

yarn tidak harus menggunakan usang / tidak aman Buffer konstruktor. Menurut peringatan penghentian new Buffer() harus diganti dengan salah satu dari Buffer.alloc() , Buffer.allocUnsafe() atau Buffer.from() ; paket safe-buffer adalah pilihan lain.

Sebutkan node.js, benang, dan versi sistem operasi Anda.

$ node -v
v8.9.4

$ yarn -v
1.5.1

$ uname -a
Linux 4.15.6-300.fc27.x86_64 #1 SMP Mon Feb 26 18:43:03 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
cat-bug cat-compatibility high-priority triaged

Komentar yang paling membantu

FYI: Baru saja melewati dependensi benang dan ada dua yang masih memanggil new Buffer() :

  • tar-stream (diperbaiki, tetapi kami masih bergantung pada versi yang lebih lama)
  • v8-compile-cache (tidak diperbaiki)

Kami mungkin perlu memperbaruinya.

Semua 84 komentar

Mendapatkan peringatan yang sama ini di macOS. Saya yakin # 5704 adalah duplikat dari ini.

Sebagai solusi untuk saat ini, saya telah membuat skrip ~/bin/node yang ada sebelumnya (diinstal di Homebrew) /usr/local/bin/node di $PATH :

#!/bin/bash

/usr/local/bin/node --no-deprecation "$@"

FYI: Baru saja melewati dependensi benang dan ada dua yang masih memanggil new Buffer() :

  • tar-stream (diperbaiki, tetapi kami masih bergantung pada versi yang lebih lama)
  • v8-compile-cache (tidak diperbaiki)

Kami mungkin perlu memperbaruinya.

@martinstuecklschwaiger kapan perbaikannya dilakukan ???

@marvinhagemeister v8-compile-cache baru saja merilis versi 2.0.0, yang memperbaiki bug tersebut. Semoga kami dapat segera memperbarui ke versi baru.

@fengerzh @imsnif sudah menggunakan versi baru untuk menguasai https://github.com/yarnpkg/yarn/commit/546a1576edbf701021ce65e3dd8daff267083f52 🎉

Kapan Anda berencana merilis versi baru dengan perbaikan ini? Saya tidak bisa menemukan info apa pun tentang cara Anda menangani rilis.

Saya melihat label high-priority digunakan untuk masalah ini, bukankah itu juga berarti Anda ingin melakukan perbaikan secepatnya? Tidak hanya memperbaikinya secepat mungkin.

EDIT: Tidak bermaksud terdengar memaksa atau menuntut dengan cara apa pun, saya hanya ingin tahu bagaimana Anda mendekati masalah high-priority . Alasan saya bertanya adalah karena mendapatkan peringatan tentang hal ini untuk setiap contoh shell baru yang saya mulai itu mengganggu.

Peringatan ini mulai muncul setelah saya meningkatkan dari node v0.9.x ke v0.10.1

@ piotr-cz maksud Anda v10.1, 0.10 cukup kuno.

Terima kasih, maksud saya peringatan itu mulai muncul setelah peningkatan dari v9.x ke v10.1.0

Masih mendapatkan peringatan ini dengan benang 1.6.0

yarn install v1.6.0
(node:22339) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security 
and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or 
Buffer.from() methods instead.

Saya node.js, benang dan versi sistem operasi

node -v
v10.1.0

yarn -v
1.6.0

uname -a
Darwin *****.local 17.5.0 Darwin Kernel Version 17.5.0: Fri Apr 13 19:32:32 PDT 2018; 
root:xnu-4570.51.2~1/RELEASE_X86_64 x86_64

Ada kemajuan di sini? Kami sangat ingin menggunakan node 10 dalam proyek kami tanpa solusi apa pun 🔥

Itu hanya peringatan. Mengapa itu mencegah Anda untuk menggunakannya?

Masalah yang sama di sini dan itu menyebabkan tema Roots Sage saya tidak dikompilasi dan gagal diterapkan. Lihat juga https://discourse.roots.io/t/buffer-deprecated-yarn-warning/12525

@teohhanhui Peringatan berumur panjang bermasalah karena mengaburkan peringatan lain yang lebih berguna: Tidak masuk akal mengharapkan pengembang untuk melihat semua peringatan pada setiap bangunan, dan secara mental hanya mendiskon yang "dapat diterima". Oleh karena itu, sangatlah umum (dan sepenuhnya masuk akal) untuk memperlakukan semua peringatan sebagai kesalahan. Ini bukan keluhan tentang benang, yang bagus; tapi frase "Itu hanya peringatan" menimbulkan lonceng alarm mental yang keras.

Ada perusahaan perangkat lunak / dll yang besar dan sangat makmur, dengan nama merek yang kita semua tahu, yang memiliki aturan di seluruh perusahaan seperti: perlakukan peringatan sebagai kesalahan atau hapus, tetapi jangan pernah menghabiskan tenaga manusia untuk memeriksa daftar peringatan secara rutin. Untuk alasan yang disebutkan di atas.

Ini bukan untuk mengatakan ini adalah balasan nasihat yang sempurna di mana-mana, tetapi tidak jarang dan ditunjukkan dengan cukup baik sebagai bisa diterapkan dan berharga.

Jika Anda akan memperlakukan semua peringatan sebagai kesalahan, bukankah Anda memiliki cara untuk mengabaikan / peringatan whitelist? Tapi bagaimanapun, saya tidak melihat bagaimana itu kesalahan yarn sehingga Anda memilih untuk melakukan itu. yarn tidak rusak dalam kasus ini.

Maaf melakukan ini tetapi saya harus mengunci masalah ini karena orang-orang sepertinya tidak membaca komentar sebelumnya. Berikut ringkasannya:

  • Masalah ini belum terselesaikan (mulai Yarn 1.6.0)
  • Ya, kami sebagai tim benang sadar dan sedang bekerja keras untuk memperbaikinya dan merilis versi baru. Anda dapat mengikuti # 5769 untuk melihat kemajuan (tolong, jangan gunakan PR itu sebagai forum diskusi lain untuk ini)
  • Kami telah menemukan masalah terkait symlink di Windows saat menggunakan Yarn di Node 10 yang dapat menyebabkan penginstalan terhenti dengan rekursi yang tidak terbatas. Masalah ini juga dibahas di # 5769

Saya minta maaf atas nama seluruh tim Yarn atas masalah ini dan keterlambatannya.

Pembaruan: PR yang disebutkan di atas sekarang digabungkan. Kami akan merilis versi baru sesegera mungkin.

Versi 1.7.0 dengan perbaikan baru saja ditayangkan. Terima kasih atas kesabaran Anda!

@teohhanhui menggunakannya dalam satu repositori dalam tumpukan lerna, jadi peringatan benang mematikan proses lerna (ya mungkin lebih dari pengaturan lerna di sini, tetapi peringatan pembersihan juga memperbaiki masalah untuk kami)
@BYK terima kasih byk atas usaha Anda

@BYK Saya masih melihat peringatan Buffer dengan 1.7.0 dari Homebrew:

$ NODE_OPTIONS=--trace-warnings yarn outdated
yarn outdated v1.7.0
(node:44538) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
    at showFlaggedDeprecation (buffer.js:159:11)
    at new Buffer (buffer.js:174:3)
    at Object.module.exports.module.exports (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:4105:6)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.module.exports.module.exports (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:4228:12)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.module.exports.module.exports (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:56449:11)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.<anonymous> (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:43234:13)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)

@ezzatron Sama di sini.

@ezzandri
Saya pikir peringatan itu hanya muncul setelah mengeksekusi benang untuk pertama kalinya setelah pembaruan minuman. Saat menjalankan benang untuk kedua kalinya, peringatan untuk saya hilang.

Inilah kondisi mesin saya saat ini:

yarn -v
1.7.0

node -v
v10.1.0

uname -a
Darwin *****.local 17.5.0 Darwin Kernel Version 17.5.0: Fri Apr 13 19:32:32 PDT 2018; root:xnu-4570.51.2~1/RELEASE_X86_64 x86_64

Ini log terminal saya

$ yarn
yarn install v1.7.0
(node:73733) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.47s.

$ yarn
yarn install v1.7.0
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.40s.

Hai, saya masih memiliki DeprecationWarning saat melakukan yarn check

$ yarn check
yarn check v1.7.0
[---------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0/1697(node:84081) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methodsinstead.

Jalankan yarn upgrade , sepertinya Anda memiliki ketergantungan pada upath karena beberapa paket dan masih memiliki versi yang terpasang.

@rpellerin Terima kasih, tapi upath sudah up to date
Bahkan setelah yarn upgrade saya masih mendapatkan peringatan yang sama tetapi tidak pada saat yang sama dengan versi 1.6
Juga setelah beberapa tes, itu tidak terbatas pada yarn check

$ yarn
yarn install v1.7.0
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[-----------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0/943(node:7042) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
✨  Done in 24.87s.

Diuji dengan node v10.1.0 & v10.2.0, saya menggunakan OSX dan menggunakan brew untuk menginstal benang (menggunakan --without-node param)

@Justkant Anda dapat menjalankan NODE_OPTIONS=--trace-warnings yarn ? Ini akan memberi tahu Anda paket mana yang memicu peringatan.
Kemudian Anda dapat menjalankan yarn why <package> . Saya akan menjawab sesuai.

Ya, itu diselesaikan setelah peningkatan ke 1.7.0
Terima kasih @BYK

@rpellerin

yarn install v1.7.0
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[----------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0/943(node:8741) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
    at showFlaggedDeprecation (buffer.js:159:11)
    at new Buffer (buffer.js:174:3)
    at Object.<anonymous> (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:68767:20)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.module.exports.module.exports (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:129185:17)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.module.exports.module.exports.id (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:107036:12)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.module.exports.Object.defineProperty.value (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:62287:14)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
✨  Done in 30.10s.

Tetapi mengapa saya melakukan yarn why <package> ? Peringatan itu tidak terkait dengan paket lokal saya tetapi hanya untuk benang itu sendiri, bukan?

Saya pikir itu karena sebuah paket. Coba gunakan benang dari npm?
npm i -g yarn

Penggunaan benang dari npm sepertinya bekerja dengan baik

yarn tidak menampilkan peringatan untuk saya, tetapi yarn outdated tidak.

$ NODE_OPTIONS=--trace-warnings yarn outdated
yarn outdated v1.7.0
(node:28493) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
    at showFlaggedDeprecation (buffer.js:159:11)
    at new Buffer (buffer.js:174:3)
    at Object.module.exports.module.exports (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:4105:6)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.module.exports.module.exports (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:4228:12)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.module.exports.module.exports (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:56449:11)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
    at Object.<anonymous> (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:43234:13)
    at __webpack_require__ (/usr/local/Cellar/yarn/1.7.0/libexec/lib/cli.js:22:30)
✨  Done in 1.10s.

Perhatian: Tampaknya buffer constructor lama masih digunakan untuk CLI global. Saya masih mendapatkan pesan kesalahan saat berurusan dengan yarn global perintah. @Yuk

Ack! Terima kasih atas laporan terperinci. Saya akan memeriksanya hari ini.

Oke, paket yang melanggar adalah sshpk yang dibutuhkan oleh http-signature yang dibutuhkan oleh request . Ada PR untuk diperbaiki tetapi sepertinya tidak mendapatkan cinta. Adakah yang tahu seseorang di Joyent untuk membantu kami?

Masih diterbitkan pada benang 1.7.0 dengan simpul> 10.0.0

Memperbaiki masalah dengan menghapus node yang datang dengan benang dan menginstal 8.11.2 stabil dari https://nodejs.org/en/

Memperbaiki masalah dengan menghapus node yang datang dengan benang dan menginstal [versi lama] ...

Ini tidak benar-benar "memperbaiki" jika Anda kembali ke versi yang sebelumnya sudah tidak digunakan lagi karena tidak aman.

Masalah yang ditautkan oleh @mikestepanov tampaknya telah diselesaikan. File yang melanggar sekarang menggunakan Buffer.from :

https://github.com/joyent/node-sshpk/blob/175758a9473523409339e6c519c470c808ca03de/lib/algs.js

Ini tampaknya telah dirilis sebagai 1.14.2, yang cocok dengan kisaran versi yang dibutuhkan http-signature .

IOW sepertinya hanya memperbarui file kunci benang dan memotong rilis baru harus memperbaiki ini.

Satu-satunya hal yang membantu adalah menghapus file yarn.lock, seperti yang dikatakan @pluma

FWIW bug ini merusak getstorybook untuk saya karena mencoba mengurai stderr, ke mana peringatan itu dicetak. Tidak yakin apakah storybook-cli telah diperbarui untuk mengatasi masalah ini tetapi perlu disebutkan bahwa ini lebih dari sekadar masalah kosmetik.

@BYK Situasi dengan bug ini sangat menyedihkan bagi pengembang di seluruh dunia, dapatkah Anda mempublikasikan versi tetap dari benang (1.7.1 atau lebih) dengan versi paket di dalamnya seperti yang diusulkan di https://github.com/ yarnpkg / yarn / issues / 5477 # Issuecomment -396903361 please? 🙏

Komitmen ini (dari bulan lalu) sepertinya seharusnya menutup masalah ini, tetapi saya masih melihat ini dengan node 10.5.0 & benang 1.9.0-20180621.1511 (nightly). Seperti situasi @Gurenax , peringatan hanya muncul selama proses awal untuk saya (hapus node_modules lalu jalankan yarn ). Jika bermanfaat bagi orang lain, saya telah menyertakan beberapa catatan terkait dengan apa yang saya temukan / lakukan di bawah. Sepertinya dependensi yarn kedaluwarsa karena orang dapat melihat panggilan new Buffer dalam build JS mandiri malam saat ini.

  1. Periksa dengan proyek kosong / minimal untuk melihat apakah peringatan tetap ada. (mis. mkdir empty-project; cd empty-project; npm init empty-project; yarn ).
  2. Jika peringatan muncul di sana maka Anda mungkin perlu memutakhirkan benang (coba rc terbaru: v1.8 meskipun v1.7.0 seharusnya memperbaikinya). Dalam kasus saya, itu tidak terjadi dalam kasus minimal, jadi saya harus menggali lebih dalam. Pertama saya menjalankan yarn upgrade tetapi tampaknya itu tidak memperbaikinya.
  3. Coba jalankan dengan mengaktifkan --trace-warnings , misalnya rm -rf node_modules/; NODE_OPTIONS=--trace-warnings yarn :
(node:4672) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
    at showFlaggedDeprecation (buffer.js:159:11)
    at new Buffer (buffer.js:174:3)
    at Object.<anonymous> (/usr/share/yarn/lib/cli.js:68827:20)
    at __webpack_require__ (/usr/share/yarn/lib/cli.js:22:30)
    at Object.module.exports.module.exports (/usr/share/yarn/lib/cli.js:129944:17)
    at __webpack_require__ (/usr/share/yarn/lib/cli.js:22:30)
    at Object.module.exports.module.exports.id (/usr/share/yarn/lib/cli.js:107711:12)
    at __webpack_require__ (/usr/share/yarn/lib/cli.js:22:30)
    at Object.module.exports.Object.defineProperty.value (/usr/share/yarn/lib/cli.js:62536:14)
    at __webpack_require__ (/usr/share/yarn/lib/cli.js:22:30)

Pada titik ini saya agak bingung. Membuka /usr/share/yarn/lib/cli.js mengintip di dekat baris 68827 Saya melihat ini:

/* 285 */
/***/ (function(module, exports, __webpack_require__) {

var stream = __webpack_require__(69)
var eos = __webpack_require__(549)
var inherits = __webpack_require__(59)
var shift = __webpack_require__(741)

var SIGNAL_FLUSH = new Buffer([0])

var onuncork = function(self, fn) {
  if (self._corked) self.once('uncork', fn)
  else fn()
}

var destroyer = function(self, end) {
  return function(err) {
    if (err) self.destroy(err.message === 'premature close' ? null : err)
    else if (end && !self._ended) self.end()
  }
}

Mencari GitHub untuk beberapa bagian yang tampak lebih unik dari kode ini membuat saya menemukan bahwa itu berasal dari duplexify sebelum v3.5.4. Selanjutnya saya menjalankan yarn why duplexify dan menemukan bahwa salah satu dependensi saya menggunakannya. Namun, itu menggunakan v3.6.0, yang seharusnya tidak bermasalah. Saya mencoba menambahkan paket / versi itu ke proyek kosong / minimal saya dan menjalankan kembali yarn . Memang itu bekerja dengan baik: tidak ada peringatan. Ditambah itu tidak menjelaskan mengapa jejak menunjukkan skrip webpack yang terkait dengan yarn .

Meskipun saya tidak yakin bagaimana saya melakukannya, suatu kali saya mendapat baris yang berbeda di jejak untuk peringatan, dan itu menunjuk ke file cli.js webpack yang sama, tetapi kode di dalamnya adalah dari sshpk (sebelum # 175758a).

Menyadari bahwa new Buffer muncul dalam kode di benang JS nightly build , saya akhirnya menyerah untuk saat ini, berharap pesan itu akan hilang dengan sendirinya setelah benang diperbarui di masa depan.

@jacobq Terima kasih telah melihat ini! Saya bukan ahli dalam hal ini - Saya benar-benar baru saja menemukan masalah ini - tetapi setelah membaca dan membaca kembali temuan Anda, sepertinya yang Anda katakan adalah bahwa Yarn menyertakan versi lama duplexify dalam kode CLI-nya? Apakah itu akurat?

Masih melihat ini juga.

Saya pergi ke https://nodejs.org/ sekarang dan menemukan bahwa versi terbaru sudah 10.5 👀
Sementara itu, saya dan kolega saya masih menggunakan 8.x karena masalah ini masih terbuka 😅 Sangat tertarik untuk mengeksplorasi apa yang baru di 10.x! 🚀 🙏

@kachkaev Jangan biarkan peringatan ini menghentikan Anda! :tersenyum:

@mcmire Bagi saya terlihat seperti itu . Saya curiga mereka hanya perlu menjalankan yarn upgrade ... untuk memperbarui file kunci.

@kachkaev 8.x masih merupakan versi LTS terbaru hingga musim gugur ini , jadi tidak ada salahnya untuk menggunakannya, terutama dalam produksi. Selain itu, seperti yang disebutkan @teohhanhui , ini hanya peringatan sehingga tidak "rusak" kecuali dalam kasus di mana output digabungkan dengan erat ke beberapa aplikasi / logika.

@jacobq sudah ada beberapa paket yang membutuhkan node> = 9 agar bisa bekerja.

Saya juga menggunakan node 8 karena peringatan ini tetapi sekarang saya terpaksa melihatnya setiap kali saya menggunakan benang yang sangat mengecewakan. Itu membuat saya berpikir untuk menggunakan npm, tetapi saya sangat menyukai benang dan tidak ingin beralih kembali. Menyedihkan untuk mencoba mengabaikan peringatan ini setiap hari. 😢

Adakah yang sudah menemukan solusi untuk masalah ini? Sangat menjengkelkan untuk dilihat setiap kali saya menjalankan perintah benang

+1

benang menginstal v1.7.0
info Tidak ditemukan file kunci.
[1/4] Menyelesaikan paket ...
⠁ (node: 12916) [DEP0005] DeprecationWarning: Buffer () tidak digunakan lagi karena masalah keamanan dan kegunaan. Silakan gunakan metode Buffer.alloc (), Buffer.allocUnsafe (), atau Buffer.from () sebagai gantinya.
di showFlaggedDeprecation (buffer.js: 159: 11)
di Buffer baru (buffer.js: 174: 3)
di Object.module.exports.module.exports (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 4105: 6)
di __webpack_require__ (C: \ Program Files (x86) \ Benang \ lib \ cli.js: 22: 30)
di Object.module.exports.module.exports (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 4228: 12)
di __webpack_require__ (C: \ Program Files (x86) \ Benang \ lib \ cli.js: 22: 30)
di Object.module.exports.module.exports (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 56449: 11)
di __webpack_require__ (C: \ Program Files (x86) \ Benang \ lib \ cli.js: 22: 30)
di Object.(C: \ Program Files (x86) \ Benang \ lib \ cli.js: 43234: 13)

Saya juga menderita ini di OSX saya, tetapi:

yarn global add yarn

Sepertinya bisa menyelesaikannya ... Aku ingin tahu apakah versi homebrew rusak ... 🤔

@carddamom Apakah itu benar-benar menyelesaikannya atau mungkin apakah masalah hilang begitu saja karena Anda sudah menjalankannya sekali? (Saya masih melihat new Buffer muncul 134 kali dalam 7/6 malam .) Saya penasaran: jika Anda menghapus node_modules dan menjalankan yarn lagi, apakah Anda melihat peringatan itu lagi?

Ini memperbaiki masalah ini untuk saya juga:

image

Saya menghapus benang yang dipasang dengan Homebrew dan memasangnya kembali secara global dengan npm. Tidak melihat masalah ini lagi dan beberapa kesalahan terkait gyp lainnya juga hilang.

Saya ingin tahu apakah versi pada homebrew entah bagaimana rusak ... 🤔

Saya pasti akan mengarahkan jari saya pada Homebrew sekarang.

@jacobq Bagi saya tidak ada node_modules untuk dihapus, karena saya menggunakan "benang global", sebagai anekdot, saya juga mencoba menautkan ulang paket menggunakan homebrew dan kesalahan muncul kembali, jadi ini lebih lanjut mengkonfirmasi ini ...

Alasan Anda hanya melihat peringatan dari rilis tar.gz dan Homebrew ( yang baru saja menginstal rilis tar.gz ) adalah karena Node tidak mengeluarkan peringatan deprecation ketika modul yang memanggil new Buffer ada di dalam node_modules direktori.

Jadi ketika Anda menginstal melalui homebrew, benang yang dapat dieksekusi akan berada di:

/usr/local/bin/yarn

Tetapi ketika Anda menginstal melalui npm itu akan berada di jalur seperti (saya menggunakan nvm di sini):

~/.nvm/versions/node/v10.6.0/lib/node_modules/yarn/bin/yarn

Kode tersebut persis sama, satu-satunya perbedaan adalah karena npm menginstalnya ke direktori yang berisi node_modules saat ini tidak mengeluarkan peringatan.

Lihat isInsideNodeModules yang dipanggil di dalam modul buffer native untuk referensi.

Dari tampilan barang lib/cli.js masih berisi sejumlah panggilan ke new Buffer . Itu semua adalah satu bundel webpack besar jadi saya tidak tahu dari perpustakaan mana mereka berasal, tetapi komentar di atas tampaknya telah mengidentifikasi paket tersebut.

Ya hanya mengonfirmasi bahwa itu masih terjadi pada saya dengan versi repositori Debian / Ubuntu (mungkin karena alasan yang tercantum di atas), tentu saja tidak ada yang khusus untuk Homebrew.

Jika perlu beberapa saat untuk memperbarui penggunaan new Buffer dalam berbagai dependensi, mungkin ada baiknya menemukan cara untuk membungkam peringatan khusus tersebut untuk saat ini. Di sisi saya, menambahkan bendera --no-deprecation di tempat yang tepat di /usr/bin/yarn berfungsi, tetapi terasa agak hack dan berat.

Sunting: Anda juga dapat menjalankan benang seperti NODE_OPTIONS=--no-deprecation yarn yang berfungsi. Saya pikir saya akan menetapkan itu sebagai alias.

@jacobq ... atas saran teman-teman kalian, komentar saya dihapus, hanya tersisa satu, lalu terkesan pendek! Tidak akan menambahkan lebih banyak.
... Selesai ...

Sebagai solusi sementara, saya menggunakan alias seperti yang disarankan @noinkling .

Bagi mereka yang menggunakan fish :

function yarn
  env NODE_OPTIONS=--no-deprecation yarn $argv
end

Ini masih terjadi pada 1.9.2 rc yang berisi 2f4bba1 (?), Mis

yarn install v1.9.2
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
[3/5] 🚚  Fetching packages...
[----------------------------------------------------------------------] 0/1820
(node:1936) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[4/5] 🔗  Linking dependencies...

Menggunakan node 10.6, macOS 10.13.6.

@vieira Ya, sayangnya masih ada beberapa deps lain yang perlu diupgrade untuk mengatasi hal ini secara tuntas. Lihat komentar saya di sini untuk daftar mereka. (Beberapa menunggu PR sehingga Anda mungkin dapat membantu dengan berkontribusi pada upaya tersebut atau setidaknya memberikan reaksi +1).

mengalami masalah yang sama
node v10.7.0, benang 1.9.2

node:67668) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
error [email protected]: The engine "node" is incompatible with this module. Expected version ">=4 <=9".

@bogdansoare sepertinya Anda menggunakan modul yang tidak kompatibel dalam proyek Anda. Coba yarn why upath lalu hapus / perbarui bagian yang membawanya untuk menghilangkan kesalahan.

PS + 1 / saya juga komentar umumnya tidak disukai. Silakan gunakan tombol reaksi sebagai gantinya.

@jacobq Masalah GitHub ini telah ditutup, tetapi saya masih melihat masalah tersebut di rilis 1.9.2 terbaru. Saya memahami bahwa masalah ini disebabkan oleh ketergantungan hilir, tetapi tidak jelas apakah tim Yarn yakin ini telah diperbaiki. Apakah ini seharusnya diperbaiki, atau apakah ini ditutup karena solusinya adalah menonaktifkan peringatan? Menekan peringatan bukanlah perbaikan bagi saya dan tim saya, karena menonaktifkan peringatan keamanan tidak dapat diterima dalam konteks tim saya.

@corshamax Masalah khusus ini telah diperbaiki karena kami memperbarui kode kami untuk berhenti menggunakan struktur bermasalah. Peringatan masih muncul karena beberapa dependensi kami masih menggunakannya, tetapi itu adalah masalah yang berbeda (sayangnya dengan hasil yang sama) yang harus dilaporkan ke proyek yang relevan (dan kemudian kepada kami setelah rilis tetap dibuat sehingga kami dapat meningkatkan ketergantungan yang terpengaruh).

Dan untuk semuanya, kami menerima permintaan pull, jadi jika Anda menemukan sesuatu yang bisa diperbaiki, cukup buka satu dan kami akan memastikan untuk menggabungkannya untuk rilis berikutnya. @jacobq membuat karya luar biasa dengan mencantumkan dependensi yang mungkin perlu diperbarui, itu titik awal yang baik: https://github.com/yarnpkg/yarn/pull/5934#issuecomment -406346724

Saya melihat masalah ini dengan node v10.8.0 dan benang v1.9.4.

Sepertinya semua PR yang disebutkan di https://github.com/yarnpkg/yarn/pull/5934#issuecomment -406346724 telah digabungkan. Saya harap itu berarti kita dapat melihat perbaikan untuk ini segera.

@vrobinson Ya, mereka harus diperbaiki dengan https://github.com/yarnpkg/yarn/pull/6208 - Anda dapat melihat ini dengan mencari JS mandiri untuk new Buffer dan mengamati bahwa itu hanya muncul di fallback dan komentar. Bersabarlah: smile_cat:

Pembaruan: Sepertinya baru saja mendarat: tada: jadi nantikan malam berikutnya. Kepada semua orang yang membantu mewujudkan hal ini,: bowing_man: terima kasih: berdoa :!

Saya mendapat kesalahan ini, apakah ini terpecahkan?

@ rof20004 : point_up: (tepat di atas komentar Anda) . PR telah digabungkan, jadi sekarang "diperbaiki" pada master cabang kode sumber. Namun, Anda akan terus melihat peringatan ini dengan Node 10 hingga (1) versi baru dirilis dan (2) Anda meningkatkan ke versi itu.

@jacobq Saya menggunakan paket debian, saya harus menunggu sampai paket baru kemudian '-'.

Terima kasih :)

@ rof20004 Anda harus dapat mulai menggunakannya besok, jika Anda mau, cukup pastikan Anda memiliki apt menunjuk ke malam:
https://yarnpkg.com/en/docs/install#debian -nightly

@jacobq jadi kita akan melihat masalah ini akhirnya diselesaikan sekali untuk semua dengan [email protected] , benar?

Mungkin bukan rilis patch, lebih seperti 1.10

Saya memiliki masalah yang sama.
$ yarn install
node:39) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. error An unexpected error occurred: "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz: getaddrinfo EADDRNOTAVAIL registry.yarnpkg.com registry.yarnpkg.com:443". info If you think this is a bug, please open a bug report with the information provided in "/app/yarn-error.log". info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
/app $ node -v v10.10.0 /app $ yarn -v 1.9.4 /app $

seseorang punya solusinya?

@ codestart123 membaca utas, mereka mengatakan itu diperbaiki di malam hari tetapi belum dirilis.

@ codestart123 Galat yang Anda sebutkan bukan disebabkan oleh masalah ini (Anda dapat mengabaikan peringatan penghentian):

error An unexpected error occurred: "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz: getaddrinfo EADDRNOTAVAIL registry.yarnpkg.com registry.yarnpkg.com:443"

EADDRNOTAVAIL adalah kesalahan terkait jaringan (kesalahan: alamat tidak tersedia). Coba jalankan ping registry.yarnpkg.com untuk mengonfirmasi bahwa sistem Anda dapat menentukan nama dan menjangkau host.

Apakah sudah diperbaiki?

@ ryanzhu1024 diperbaiki pada 1.10.0, dirilis beberapa hari yang lalu 👍

Menunggu versi benang upgrade node.

Tidak percaya peringatan yang mengganggu ini akhirnya hilang. Terima kasih :)

Hooraaaay 🙌 🎉 🍾

@goktugyil Pertanyaan yang Anda yarn . Jika Anda menggunakan benang, pastikan Anda memiliki versi terbaru (saat ini 1.12.3 ). Jika Anda tidak menggunakan yarn jangan kirim silang di sini. StackOverflow adalah tempat yang tepat untuk mengajukan pertanyaan pemrograman umum, dan https://github.com/nodejs/help adalah tempat yang tepat untuk mengajukan pertanyaan Node. https://github.com/yarnpkg/yarn/issues adalah untuk permintaan fitur dan masalah yang terkait dengan benang (bukan untuk dukungan / pertanyaan pengembangan umum).

@arcanis / @BYK / @imsnif Maukah Anda mengunci utas ini? Masalah ini telah diperbaiki pada benang dan ketergantungannya untuk sementara waktu sekarang, dan saya rasa diskusi lebih lanjut di sini tidak akan menguntungkan siapa pun.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat