Мне нужно запустить: 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
?
У меня возникла новая, очень похожая и необъяснимая ошибка в настройке упаковки. Надеюсь на ответ здесь, чтобы прояснить, что происходит.
Это было одно из немногих мест, для которых я мог даже найти разумный результат:
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 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 6.13.4
до 6.13.6
устранило проблему в моем случае, так что, по крайней мере, мы знаем, что _некоторые_ проблемы были исправлены. Надеюсь, это можно исправить и для всех остальных.
По прошествии 20 дней было бы неплохо хотя бы обновить прогресс.
Самый полезный комментарий
6.13.5 выйдет во вторник на следующей неделе, 07.01.2019, с обновлением pacote и bin-links, чтобы исправить эту и еще одну проблему.