170 похожих чатов

Всем привет у меня проблема: pino.js использует quick-format-unescaped@4.0.1 но в yarn.lock для

quick-format-unescaped@4.0.1 под капотом используется версия 4.0.2, которая ломает работу pino

кроме pino никакой пакет больше не использует quick-format-unescaped
как понять кто добавляет эту версию и как вернуть все на место?
(удаление yarn.lock и node_modules с последующей инсталяцией не помогают - в yarn.lock снова появляется версия 4.0.2)

yarnl.lock

pino@^6.11.1:
version "6.11.1"
resolved "https://registry.yarnpkg.com/pino/-/pino-6.11.1.tgz#5af2d5395cfe625ead9fe64a3b51a4802cd2598e"
integrity sha512-PoDR/4jCyaP1k2zhuQ4N0NuhaMtei+C9mUHBRRJQujexl/bq3JkeL2OC23ada6Np3zeUMHbO4TGzY2D/rwZX3w==
dependencies:
fast-redact "^3.0.0"
fast-safe-stringify "^2.0.7"
flatstr "^1.0.12"
pino-std-serializers "^3.1.0"
quick-format-unescaped "^4.0.1"
sonic-boom "^1.0.2"

quick-format-unescaped@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.2.tgz#dd9ff79fda5e582799cb4e9cbdc9e3f2c7db1266"
integrity sha512-HNPqtTHgal9dBpJxibFGgOEmlaTbwEbplrR+oOiWp9aNFlFKBYfkbvvF8VrJPK65okrZuGOwHKLfe7/gT6NWuw==

15 ответов

22 просмотра

а yarn why quick-format-unescaped что показывает?

$ yarn why quick-format-unescaped yarn why v1.22.4 [1/4] Why do we have the module "quick-format-unescaped"...? [2/4] Initialising dependency graph... [3/4] Finding dependency... [4/4] Calculating file sizes... => Found "quick-format-unescaped@4.0.2" info Reasons this module exists - "pino" depends on it - Hoisted from "pino#quick-format-unescaped" info Disk size without dependencies: "32KB" info Disk size with unique dependencies: "32KB" info Disk size with transitive dependencies: "32KB" info Number of shared dependencies: 0 Done in 2.18s. но в package.json у pino прописана версия 4.0.1

а что не так то?) Ты же сам указал, что твой пакет может обновиться до любой версии

у меня он не прописан - это зависимость pino кто его обновляет? у pino в package.json прописана версия 4.0.1 - кто устанавливает 4.0.2?

вот такая форма записи версий ^4.0.1 это позволяет делать

я понимаю что такая запись позволяет, но для этого кто-то должен сказать сделай апгрейд, а никто не говорит такое - удаляю yarn.lock и node_modules и делаю yarn install - должны установиться те зависимости что прописаны без апгрейдов, а по факту устанавливается 4.0.2

так, ладно, я не смог установить зависимости у pino (привет баги npm 7) Все просто ^4.0.1 - позволяет ставить 4.0.*, может даже и минорные (не помню) У пакетов в npm registry нет своего package-lock файла, который бы запретил пакету обновляться. Поэтому подъезжают самые новые версии, которые удовлетворяют условию ^4.0.1

т.е. можно писать issue в pino чтобы зафиксировали версию точно?

да. Но они скорее обновятся просто, чем будут править package.json файл

нет - новая версия ломает функционал - им либо фиксировать версию нужно либо фиксить код под новую версию

ну это в любом случае им разбираться)

сам можешь это проверить есть package.json (но нет lock-файла) { "private": true, "dependencies": { "esbuild": "^0.9.0" } } $ npm i $ cat package-lock.json ... "node_modules/esbuild": { "version": "0.9.1", ...

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

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

понял, спасибо ребята в pino завели баг

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта