Cli: ошибка недопустимая запись корзины для пакета

Созданный на 18 дек. 2019  ·  16Комментарии  ·  Источник: npm/cli

Что почему

Мне нужно запустить: npm prune из этой строки в этом пакете сборки Heroku: https://github.com/gjaldon/heroku-buildpack-phoenix-static/blob/master/lib/build.sh#L137

Я получаю следующую ошибку:

npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/samhstn/.npm/_logs/2019-12-18T17_08_55_527Z-debug.log

В результате был получен следующий журнал отладки: 2019-12-18T17_08_55_527Z-debug.log

когда

Ошибка возникает только при запуске npm prune когда нет node_modules , и может возникать не только для модуля jsesc .

Но npm prune отлично работает, когда мы установили node_modules .

где

Ошибка возникает из чистой сборки на нашем Heroku ci и для меня локально на моей машине osx.

Как

Из клонирования этого репозитория: https://github.com/samhstn/invalid-bin-entry , затем запустите:

cd assets
npm prune

выдает ошибку


Что мне делать, чтобы отладить этот тип ошибки в будущем? И как я могу заставить свой buildpack Heroku успешно выполнить команду npm prune ?

Release 6.x patch

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

6.13.5 выйдет во вторник на следующей неделе, 07.01.2019, с обновлением pacote и bin-links, чтобы исправить эту и еще одну проблему.

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

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

Это было одно из немногих мест, для которых я мог даже найти разумный результат:

npm "недопустимая запись корзины"

Это заставляет меня подозревать, что это могло быть связано с недавним изменением.

У меня такая же проблема

У меня такое же сообщение об ошибке в NPM: v6.13.4.

Мои шаги по воспроизведению отличаются от OP, но я предполагаю, что это аналогичная причина.

Мы используем:
npm ci && npm prune --production

Это вызывает
error invalid bin entry for package

С помощью:
npm install && npm prune --production

Однако работает нормально. Я предполагаю, потому что npm install касается package-lock / package.json всякий раз, когда считает нужным, и потенциально добавляет туда что-то, чтобы все это работало.

Я проследил это до
https://github.com/npm/bin-links/commit/25a34f905a0144cebcd41e56b6942117b267e005#diff -168726dbe96b3ce427e7fedce31bb0bcR85

Что было добавлено в выпуске npm v6.13.3.

Я не особо понимаю, что сейчас происходит. Возможно, мне лучше почитать позже, чтобы понять, в чем настоящая причина, а не в симптоме.

Мы не должны _ возвращаться к v6.13.2_, поскольку 6.13.3 и 6.13.4 предназначены для устранения недостатка безопасности bin;
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli

Я думаю, что лучший способ действий сейчас - просто не использовать чернослив, пока он не будет рассортирован, скорее всего, после праздников. :)
@samhstn @grossmannmartin @ nickv2002

@isaacs (потому что git-blame мне так говорит: joy

Имея ту же проблему. Видя это с разными пакетами:

+ npm prune
npm ERR! invalid bin entry for package [email protected]. key=portastic, value=bin/portastic

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-12-23T21_19_21_377Z-debug.log

Да, похоже, что prune не проходит в полностью разрешенной папке, когда он связывает бункеры (что, я должен сказать, почему _prune_ связывает бункеры, что кажется несколько ненужным, но нормально).

Это будет исправлено в следующем выпуске cli. Тем временем, вы можете использовать npm ci --production чтобы перейти в состояние «производственные депы установлены, но не депы разработки»? Это не будет хорошо, если вы, конечно, зависите от объединения ваших deps в репозиторий git, поскольку ci выбрасывает существующий node_modules если он его находит, но просто пытается подумать обходных путей, которые вы могли бы использовать.

Есть новости о том, когда это исправление будет доступно?

6.13.5 выйдет во вторник на следующей неделе, 07.01.2019, с обновлением pacote и bin-links, чтобы исправить эту и еще одну проблему.

То же самое происходит и здесь. Вы знаете, примерно, в какое время он будет обновлен сегодня?

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

Извините за задержку. Произошла отладка странного сбоя в GH Actions Windows CI. Мы рассчитываем выпустить это в ближайшие несколько дней, самое большее.

@jwwtaker, вы можете просто использовать команды в обратном порядке, пока исправление не появится:

  • npm install
  • npm подрезать

npm prune все еще не работает у меня, используя npm v6.13.6 .

Из оригинального описания:

Из клонирования этого репозитория: https://github.com/samhstn/invalid-bin-entry , затем запустите:

cd assets
npm prune

выдает следующую ошибку:

npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/samhstn/.npm/_logs/2020-01-13T13_17_57_425Z-debug.log

И следующий журнал отладки: 2020-01-13T13_17_57_425Z-debug.log

У нас та же проблема, но мы не можем использовать эти обходные пути, потому что команды запускаются пакетом сборки Heroku. Мы застряли на npm 6.13.2 (проблема возникает с npm 6.13.3), или мы должны удалить package-lock.json (проблема возникает только с этим файлом). npm 6.13.5 не исправляет это, как и npm 6.13.6.

какие-нибудь новости об этом

Мой Azure DevOps CI выдавал ту же ошибку, поэтому на всякий случай кому-то понадобится помощь, чтобы временно исправить это:

  • Добавьте новую задачу в конвейер перед установкой npm prune или npm под названием «Установщик инструмента Node.js».
  • Установите 13.3.0 как в поле «Спецификация версии» и перезапустите.

Это сработало для меня.

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

По прошествии 20 дней было бы неплохо хотя бы обновить прогресс.

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