Yarn: Заменить использование устаревшего / небезопасного конструктора нового буфера

Созданный на 7 мар. 2018  ·  84Комментарии  ·  Источник: yarnpkg/yarn

Каково текущее поведение?

yarn использует устаревший конструктор new Buffer() и вызывает предупреждения об устаревании при запуске с 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];

Какое поведение ожидается?

yarn не следует использовать устаревший / небезопасный конструктор Buffer . Согласно предупреждению об устаревании new Buffer() следует заменить одним из Buffer.alloc() , Buffer.allocUnsafe() или Buffer.from() ; пакет safe-buffer - другой вариант.

Пожалуйста, укажите ваш node.js, yarn и версию операционной системы.

$ 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

Самый полезный комментарий

К вашему сведению: только что просмотрел зависимости пряжи, и есть две, которые все еще вызывают new Buffer() :

  • tar-stream (исправлено, но мы по-прежнему зависим от более старой версии)
  • v8-compile-cache (не исправлено)

Вероятно, нам потребуется обновить их.

Все 84 Комментарий

Такое же предупреждение появляется в macOS. Я считаю, что № 5704 - это дубликат этого.

В качестве обходного пути я создал сценарий ~/bin/node который предшествует (установлен Homebrew) /usr/local/bin/node в моем $PATH :

#!/bin/bash

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

К вашему сведению: только что просмотрел зависимости пряжи, и есть две, которые все еще вызывают new Buffer() :

  • tar-stream (исправлено, но мы по-прежнему зависим от более старой версии)
  • v8-compile-cache (не исправлено)

Вероятно, нам потребуется обновить их.

@martinstuecklschwaiger, когда будет сделано исправление ???

@marvinhagemeister v8-compile-cache только что выпустил версию 2.0.0, в которой исправлена ​​ошибка. Надеюсь, мы скоро сможем обновиться до новой версии.

@fengerzh @imsnif уже передал новую версию для освоения https://github.com/yarnpkg/yarn/commit/546a1576edbf701021ce65e3dd8daff267083f52 🎉

Когда вы планируете выпустить новую версию с этим исправлением? Я не мог найти никакой информации о том, как вы справляетесь с релизами.

Я вижу, что для этой проблемы использовалась метка high-priority Разве это не означает, что вы хотите отправить исправление как можно скорее? Не только исправить это как можно скорее.

РЕДАКТИРОВАТЬ: Я не хотел показаться настойчивым или требовательным, мне просто любопытно, как вы подходите к этим проблемам high-priority . Причина, по которой я спросил, заключалась в том, что раздражает получать предупреждение об этом при каждом запуске нового экземпляра оболочки.

Это предупреждение начало появляться после того, как я обновился с узла v0.9.x до v0.10.1

@ piotr-cz вы имеете в виду, что v10.1, 0.10 довольно древний.

Спасибо, я имел ввиду, что предупреждение начало выскакивать после обновления с v9.x до v10.1.0

Все еще получаю это предупреждение с пряжей 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.

Мой node.js, пряжа и версия операционной системы

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

Есть ли здесь прогресс? Мы действительно хотели бы использовать узел 10 в нашем проекте без каких-либо обходных путей 🔥

Это просто предупреждение. Почему это мешает вам использовать его?

Здесь та же проблема, и из-за этого моя тема Roots Sage не компилируется при ее развертывании. См. Также https://discourse.roots.io/t/buffer-deprecated-yarn-warning/12525

@teohhanhui Долгоживущие предупреждения проблематичны, потому что они скрывают другие, более полезные предупреждения: было бы неразумно ожидать, что разработчики просматривают все предупреждения в каждой сборке и мысленно сбрасывают со счетов только «приемлемые». Поэтому принято (и вполне разумно) рассматривать все предупреждения как ошибки. Это не жалоба на пряжу, и это здорово; но фраза «Это просто предупреждение» вызывает громкую ментальную тревогу.

Существуют крупные, чрезвычайно преуспевающие фирмы, занимающиеся разработкой программного обеспечения и т. Д., Известные всем нам торговые марки, у которых действуют такие общеорганизационные правила, как: относиться к предупреждениям как к ошибкам или удалять их, но никогда не тратить человеческий труд на регулярное изучение списков предупреждений. По указанной выше причине.

Нельзя сказать, что это идеальный совет, ответы на который повсюду, но он не редкость и довольно хорошо продемонстрирован как работоспособный и ценный.

Если вы собираетесь рассматривать все предупреждения как ошибки, не могли бы вы игнорировать предупреждения или заносить их в белый список? Но в любом случае, я не понимаю, почему yarn виноват в том, что вы решили это сделать. yarn в этом случае не нарушается.

Извините за это, но я должен заблокировать эту проблему, поскольку люди, похоже, не читают предыдущие комментарии. Вот краткое изложение:

  • Эта проблема еще не решена (начиная с Yarn 1.6.0).
  • Да, мы, как команда пряжи, знаем и прилагаем все усилия, чтобы исправить это и выпустить новую версию. Вы можете следить за # 5769, чтобы увидеть прогресс (пожалуйста, не используйте этот PR как еще один форум для обсуждения)
  • Мы обнаружили проблему с символическими ссылками в Windows при использовании Yarn на узле 10, которая может привести к зависанию установки с бесконечной рекурсией. Эта проблема также решается в # 5769.

Я прошу прощения от имени всей команды Yarn за проблему и задержку.

Обновление: упомянутый выше PR теперь объединен. Мы выпустим новую версию как можно скорее.

Версия 1.7.0 с исправлением только что вышла в свет. Спасибо за терпеливость!

@teohhanhui использовали его в одном репозитории в стеке lerna, поэтому предупреждение yarn уничтожает процесс lerna (да, здесь может быть больше настроек lerna, но предупреждения об очистке также решают проблему для нас)
@BYK спасибо byk за ваши усилия

@BYK Я все еще вижу предупреждения Buffer с 1.7.0 от 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 То же самое и здесь.

@ezzatron @AlexanderOMara
Я думаю, что предупреждение появляется только после выполнения yarn в первый раз после обновления brew. После выполнения пряжи второй раз предупреждение исчезло.

Вот текущее состояние моей машины:

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

Вот мой лог терминала

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

Привет, у меня все еще DeprecationWarning при выполнении 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.

Запустите yarn upgrade , вероятно, у вас есть зависимость от upath из-за какого-то пакета, но версия все еще установлена.

@rpellerin Спасибо, но upath уже обновлен
Даже после yarn upgrade я все равно получаю такое же предупреждение, но не в тот же момент, что и версия 1.6
Также после некоторых тестов это не ограничивается 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.

Протестировано с узлами v10.1.0 и v10.2.0, я использую OSX и использую brew для установки пряжи (используя параметр --without-node)

@Justkant ты можешь запустить NODE_OPTIONS=--trace-warnings yarn ? Это скажет вам, какой пакет вызывает предупреждение.
Затем вы можете запустить yarn why <package> . Я отвечу соответственно.

Да, решилось после обновления до 1.7.0
Спасибо @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.

Но зачем мне делать yarn why <package> ? Предупреждение не связано с моими локальными пакетами, а только с самой пряжей, не так ли?

Я думал, это из-за посылки. Попробуйте использовать пряжу от npm?
npm i -g yarn

Кажется, что использование пряжи из npm работает правильно

yarn показывает мне никаких предупреждений, но yarn outdated показывает.

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

Внимание: похоже, что старый конструктор буфера все еще используется для глобального интерфейса командной строки. Я все еще получаю сообщение об ошибке при работе с командами yarn global . @BYK

Ага! Спасибо за подробные отчеты. Я займусь этим сегодня.

Хорошо, оскорбительный пакет - sshpk, который требуется для http-signature который требуется для request . Есть пиар для исправления, но, похоже, это не вызывает никакой любви. Кто-нибудь знает кого-нибудь в Joyent, чтобы помочь нам?

Все еще проблема с пряжей 1.7.0 с узлом> 10.0.0

Исправлена ​​проблема при удалении узла, который поставлялся с yarn и установил стабильную версию 8.11.2 с https://nodejs.org/en/

Исправлена ​​проблема при удалении узла, который поставлялся с yarn и установлен [старая версия] ...

На самом деле это не «исправление», если вы просто вернетесь к версии до того, как она устарела из-за небезопасности.

Проблема, связанная с @mikestepanov, кажется, решена. В файле-нарушителе теперь используется Buffer.from :

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

Кажется, это было выпущено как 1.14.2, что соответствует требуемому диапазону версий http-signature .

IOW похоже, что просто обновите файл блокировки yarn, и создание нового выпуска должно исправить это.

Единственное, что помогло, это удаление файла yarn.lock, как сказал @pluma

FWIW эта ошибка сломала getstorybook для меня, потому что он пытался разобрать stderr, на который выводятся предупреждения. Не уверен, что storybook-cli был обновлен для решения этой проблемы, но стоит упомянуть, что это больше, чем косметическая проблема.

@BYK Ситуация с этой ошибкой очень печальна для разработчиков во всем мире. https://github.com/ yarnpkg / yarn / issues / 5477 # issuecomment -396903361 пожалуйста? 🙏

Эта фиксация (сделанная в прошлом месяце) выглядит так, как будто она должна закрыть эту проблему, но я все еще вижу это с узлом 10.5.0 и пряжей 1.9.0-20180621.1511 (по ночам). Как и в случае с node_modules затем запустите yarn ). На случай, если это будет полезно для других, я включил несколько примечаний, связанных с тем, что я нашел / сделал ниже. Похоже, что зависимости yarn устарели, поскольку в текущих ночных автономных сборках JS можно увидеть вызовы new Buffer .

  1. Проверьте пустой / минимальный проект, чтобы увидеть, сохраняется ли предупреждение. (например, mkdir empty-project; cd empty-project; npm init empty-project; yarn ).
  2. Если появляется предупреждение, вам может потребоваться обновить пряжу (попробуйте последнюю версию rc: v1.8 хотя версия 1.7.0 должна была исправить это). В моем случае в минимальном случае этого не произошло, поэтому пришлось копать глубже. Сначала я запустил yarn upgrade но это, похоже, не помогло.
  3. Попробуйте запустить с включенным --trace-warnings , например 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)

В этот момент я был немного озадачен. Открыв /usr/share/yarn/lib/cli.js посмотрев возле строки 68827, я увидел следующее:

/* 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()
  }
}

Поиск на GitHub некоторых из наиболее уникально выглядящих частей этого кода привел меня к выводу, что он исходит из duplexify до версии 3.5.4. Затем я запустил yarn why duplexify и обнаружил, что его использует одна из моих зависимостей. Однако он использовал v3.6.0, что не должно вызывать проблем. Я попытался добавить этот пакет / версию в свой пустой / минимальный проект и повторно запустить yarn . Действительно, все работало нормально: никаких предупреждений. Кроме того, это не объясняет, почему трассировка показала сценарий webpack, связанный с yarn .

Хотя я не уверен, как я это сделал, однажды у меня в трассировке появилась другая строка для предупреждения, и она указала на тот же файл cli.js в webpack'd, но код внутри был из sshpk (до # 175758а).

Понимая, что new Buffer появляется в коде автономной ночной сборки JS yarn , я в конце концов сдался, надеясь, что сообщение исчезнет само по себе после обновления yarn в будущем.

@jacobq Спасибо, что duplexify в его коде CLI? Это точно?

Все еще вижу это.

Я только что зашел на https://nodejs.org/ и обнаружил, что последняя версия уже 10.5 👀
Между тем, мои коллеги и я все еще используем 8.x, потому что эта проблема все еще не решена 😅 Мы очень хотим узнать, что нового в 10.x! 🚀 🙏

@kachkaev Пусть это предупреждение вас не остановит! :улыбка:

@mcmire Это выглядит , что путь ко мне. Я подозреваю, что им просто нужно запустить yarn upgrade ... чтобы обновить файл блокировки.

@kachkaev 8.x по-прежнему является последней LTS-версией до этой осени , поэтому использовать ее не стыдно, особенно в продакшене. Кроме того, как упоминал @teohhanhui , это всего лишь предупреждение, поэтому оно не "сломано", за исключением случаев, когда вывод тесно связан с каким-либо приложением / логикой.

@jacobq уже есть некоторые пакеты, которым для работы требуется node> = 9.

Я также использовал узел 8 из-за этого предупреждения, но теперь я вынужден видеть его каждый раз, когда использую пряжу, что действительно разочаровывает. Это заставляет меня думать об использовании npm вместо этого, но я очень люблю пряжу и не хочу переключаться обратно. Печально пытаться игнорировать это предупреждение каждый день. 😢

Кто-нибудь еще придумал решение этого вопроса? Так раздражает смотреть каждый раз, когда я запускаю команду пряжи

+1

пряжа установить v1.7.0
info Файл блокировки не найден.
[1/4] Обработка пакетов ...
⠁ (узел: 12916) [DEP0005] DeprecationWarning: Buffer () устарел из-за проблем с безопасностью и удобством использования. Используйте вместо них методы Buffer.alloc (), Buffer.allocUnsafe () или Buffer.from ().
в showFlaggedDeprecation (buffer.js: 159: 11)
в новом буфере (buffer.js: 174: 3)
в Object.module.exports.module.exports (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 4105: 6)
в __webpack_require__ (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 22:30)
в Object.module.exports.module.exports (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 4228: 12)
в __webpack_require__ (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 22:30)
в Object.module.exports.module.exports (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 56449: 11)
в __webpack_require__ (C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 22:30)
на объекте.(C: \ Program Files (x86) \ Yarn \ lib \ cli.js: 43234: 13)

Я тоже страдал от этого на моем OSX, но:

yarn global add yarn

Вроде решило ... Интересно, а версия на homebrew как-то битая ... 🤔

@carddamom Это действительно решило проблему или, возможно, проблема просто исчезла, потому что вы уже запускали ее однажды? (Я все еще вижу, что new Buffer появляется 134 раза за ночь с 7 сентября .) Мне любопытно: если вы удалите node_modules и снова запустите yarn , вы снова увидите предупреждение?

Это также устранило эту проблему для меня:

image

Я удалил пряжу, которая была установлена ​​с Homebrew, и переустановил ее глобально с помощью npm. Больше не видел этой проблемы, и некоторые другие ошибки, связанные с gyp, также исчезли.

Интересно, а версия на homebrew как-то битая ... 🤔

Я бы определенно указал пальцем на Homebrew сейчас.

@jacobq Для меня не было node_modules для удаления, так как я использовал "yarn global" в качестве анекдота, я также пытался повторно связать пакет с помощью homebrew, и ошибка снова появилась, поэтому это еще раз подтверждает это ...

Причина, по которой вы видите только предупреждение от выпуска tar.gz и Homebrew ( который просто устанавливает выпуск tar.gz ), заключается в том, что Node не выдает предупреждение об устаревании, когда модуль, вызвавший new Buffer находится внутри node_modules каталог.

Итак, когда вы устанавливаете через homebrew, исполняемый файл пряжи будет по адресу:

/usr/local/bin/yarn

Но когда вы устанавливаете через npm, он будет по пути вроде (здесь я использую nvm):

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

Код точно такой же, с той лишь разницей, что, поскольку npm установил его в каталог, содержащий node_modules он в настоящее время не выдает предупреждения.

Для справки см. собственного буферного модуля .

Судя по всему, lib/cli.js прежнему содержит несколько вызовов new Buffer . Это все один большой пакет веб-пакетов, поэтому я не знаю, из каких библиотек они берутся, но в приведенном выше комментарии, похоже, указан пакет.

Да, просто подтверждаю, что это все еще происходит для меня с версией репозитория Debian / Ubuntu (предположительно, по причинам, перечисленным выше), это, конечно, не имеет ничего специфического для Homebrew.

Если для обновления использования new Buffer в различных зависимостях потребуется время, возможно, стоит найти способ просто отключить это конкретное предупреждение на данный момент. С моей стороны, добавление флага --no-deprecation в соответствующее место в /usr/bin/yarn работает, но кажется немного хакерским и неуклюжим.

Изменить: вы также можете запустить пряжу, например NODE_OPTIONS=--no-deprecation yarn которая работает. Думаю, я установлю это как псевдоним.

@jacobq ... на предложение ваших парней, я удалил свои комментарии, оставил только его, тогда он кажется коротким! Больше добавлять не собираюсь.
...Готово...

В качестве временного решения я использую псевдоним, предложенный @noinkling .

Для тех, кто использует fish :

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

Это все еще происходит на 1.9.2 rc, который содержит 2f4bba1 (?), Например

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...

Используя узел 10.6, macOS 10.13.6.

@vieira Да, к сожалению, есть еще некоторые другие проблемы, которые необходимо обновить, чтобы полностью решить эту проблему. Их список см. В моем комментарии . (Некоторые ждут PR, чтобы вы могли помочь, внося свой вклад в эти усилия или, по крайней мере, давая реакцию +1).

с той же проблемой
узел v10.7.0, пряжа 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 похоже, что вы используете несовместимый модуль в своем проекте. Попробуйте yarn why upath затем удалите / обновите часть, которая вводит его, чтобы устранить ошибку.

PS + 1 / мне тоже комментарии вообще неодобрительно. Вместо этого используйте кнопки реакции.

@jacobq Эта проблема с GitHub была закрыта, но я все еще вижу проблему в последней версии 1.9.2. Я понимаю, что проблема вызвана зависимостями нижестоящего уровня, но неясно, считает ли команда Yarn это исправленным. Это должно быть исправлено, или это закрыто, потому что решение состоит в том, чтобы отключить предупреждение? Подавление предупреждения не является решением для меня и моей команды, так как отключение предупреждений безопасности неприемлемо в контексте моей команды.

@corshamax Эта конкретная проблема исправлена, поскольку мы обновили наш код, чтобы перестать использовать проблемную структуру. Предупреждение по-прежнему появляется, потому что некоторые из наших зависимостей все еще его используют, но это другая проблема (с тем же результатом, к сожалению), о которой следует сообщить в соответствующие проекты (а затем нам, когда будет выпущен фиксированный выпуск, чтобы мы могли обновите затронутую зависимость).

И что касается всего, мы приветствуем запросы на вытягивание, поэтому, если вы обнаружите, что что-то можно исправить, просто откройте один, и мы обязательно объединим его для следующего выпуска. @jacobq проделал потрясающую работу, перечислив зависимости, которые, возможно, потребуется обновить, это хорошая отправная точка: https://github.com/yarnpkg/yarn/pull/5934#issuecomment -406346724

Я вижу эту проблему с узлом v10.8.0 и yarn v1.9.4.

Похоже, все PR, упомянутые в https://github.com/yarnpkg/yarn/pull/5934#issuecomment -406346724, были объединены. Я надеюсь, что это означает, что мы сможем исправить это очень скоро.

@vrobinson Да, они должны быть исправлены с помощью https://github.com/yarnpkg/yarn/pull/6208 - Вы можете увидеть это, выполнив поиск в автономном JS по запросу new Buffer и заметив, что он появляется только в резервных вариантах. и комментарии. Наберитесь терпения: smile_cat:

Обновление: Похоже, он только что приземлился: tada: так что следите за следующей ночью. Всем, кто помог сделать это,: bowing_man: спасибо: молитесь :!

Я получил эту ошибку, это было решено?

@ rof20004 : point_up: (прямо над вашим комментарием) . PR объединен, поэтому теперь он "исправлен" в ветви master исходного кода. Однако вы будете продолжать видеть это предупреждение с Node 10, пока (1) не будет выпущена новая версия и (2) вы не обновитесь до этой версии.

@jacobq Я использую пакет debian, мне нужно дождаться появления нового пакета, затем '-'.

Благодаря :)

@ rof20004 Вы сможете начать использовать его завтра, если хотите, просто убедитесь, что у вас есть apt указывающее на ночное время:
https://yarnpkg.com/en/docs/install#debian -nightly

@jacobq, поэтому мы увидим, что эта проблема окончательно решена раз и навсегда с помощью [email protected] , верно?

Наверное, не будет релиза патча, скорее 1.10

У меня та же проблема.
$ 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 $

у кого-то есть решение?

@ codestart123 прочитал

@ codestart123 Указанная вами ошибка не вызвана этой проблемой (вы можете игнорировать предупреждение об устаревании):

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 - ошибка, связанная с сетью (ошибка: адрес недоступен). Попробуйте запустить ping registry.yarnpkg.com чтобы убедиться, что ваша система может разрешить имя и достичь хоста.

Это уже исправили?

@ ryanzhu1024 это было исправлено в 1.10.0, выпущенной несколько дней назад 👍

Ожидание обновления версии пряжи узла.

Не могу поверить, что это раздражающее предупреждение наконец исчезло. Спасибо :)

Ураааай 🙌 🎉 🍾

У меня здесь аналогичная проблема, любые идеи: https://stackoverflow.com/questions/53201124/how-to-find-source-of-a-problem-inside-a-npm-package-node36378-dep0005-dep

@goktugyil Вопрос, на который вы yarn . Если вы используете пряжу, убедитесь, что у вас последняя версия (в настоящее время 1.12.3 ). Если вы не используете yarn пожалуйста, не отправляйте здесь перекрестные сообщения. StackOverflow - хорошее место, чтобы задать общие вопросы по программированию, а https://github.com/nodejs/help - хорошее место для вопросов по узлам. https://github.com/yarnpkg/yarn/issues предназначен для запросов функций и проблем, связанных с пряжей (не для общей поддержки / вопросов разработки).

@arcanis / @BYK / @imsnif Не ветку ? Эта проблема была исправлена ​​в yarn и ее зависимостях в течение некоторого времени, и я не думаю, что дальнейшее обсуждение здесь принесет пользу кому-либо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги