Cli: 错误的软件包无效的bin条目

创建于 2019-12-18  ·  16评论  ·  资料来源: npm/cli

什么为什么

我需要运行以下命令在此Heroku buildpack中运行: npm prunehttps :

我遇到以下错误:

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

什么时候

仅在不存在node_modules情况下运行npm prune时才会发生该错误,并且错误发生的原因可能不仅仅是jsesc模块。

但是,当我们安装node_modules时, npm prune可以正常工作。

哪里

该错误是由于Heroku ci上的干净版本以及osx机器上的本地版本而发生的。

怎么样

通过克隆此存储库: https :

cd assets
npm prune

产生错误


我应该怎么做才能调试这种类型的错误呢? 我如何获得Heroku buildpack以成功运行npm prune命令?

Release 6.x patch

最有用的评论

6.13.5将于下周(2019年1月7日)发布,其中更新了patote和bin-links以修复此问题和其他问题。

所有16条评论

我的包装设置中出现一个新的非常相似且无法解释的错误。 希望在这里找到答案,以澄清正在发生的事情。

这是我什至可以找到合理结果的少数几个地方之一:

npm“无效的bin条目”

这使我怀疑这可能是由于最近的一些更改。

我遇到同样的问题

我在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来达到“已安装生产部门,而不是dev部门”的状态? 如果您依赖于在git repo中捆绑您的deps,那当然不会很好,因为ci会丢弃现有的node_modules如果找到一个),而只是想想您可能可以使用的解决方法。

有关何时发布此修复程序的任何新闻?

6.13.5将于下周(2019年1月7日)发布,其中更新了patote和bin-links以修复此问题和其他问题。

同样在这里发生。 您大概知道今天什么时间更新吗?

最近几天,这个问题一直困扰着我,是否知道何时解决该问题? 它通过TeamCity破坏了我的所有自动部署,因此我们无法部署和质量检查我们的产品。

抱歉耽搁了。 正在调试GH Actions Windows CI上的奇怪故障。 我们希望能在未来几天内尽快解决这个问题。

@jwwtaker,您可以按相反的顺序使用命令,直到修复程序出来:

  • npm安装
  • npm修剪

npm prune仍然无法使用npm v6.13.6为我工作。

从原始描述:

通过克隆此存储库: https :

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 buildpack运行的。 我们停留在npm 6.13.2(此问题自npm 6.13.3起发生),或者我们必须删除package-lock.json (此问题仅在此文件中发生)。 npm 6.13.5不能修复它,npm 6.13.6也不能修复它。

@isaacs有任何更新吗?

我的Azure DevOps CI给了我同样的错误,因此,以防万一有人需要帮助来临时解决此问题:

  • 在您的npm prune或npm安装之前,在管道中添加一个新任务,称为“ Node.js工具安装程序”
  • 将“ 13.3.0”设置为“版本规范”字段中的内容,然后重新运行。

那对我有用。

与上述某些人不同,从npm 6.13.46.13.6解决了我的问题,因此至少我们知道_some_问题已解决。 我希望它也可以为其他所有人修复。

20天后,至少更新进度会很棒。

此页面是否有帮助?
0 / 5 - 0 等级