2

我们已从 Nexus 3.01.01 迁移到 3.5.1-02。在这个过程中,我们不得不迁移内部发布的 npms。其中之一是 Telerik/Progress 的 kendo-ui(商业版)。我们已经从 Telerik 下载了许可副本,并将其发布到我们的本地网络以供我们的开发人员使用。

但是,在有效负载解析期间发布失败并出现错误。我可以将相同的 tar 发布到较旧的(3.01.01)nexus,因此它本身的 tar/payload 是可以的。

该错误似乎是在尝试解析 npm 有效负载时出现的。我还可以毫无问题地发布演示/简单 npm(范围和非范围)。花一整天的时间试图弄清楚这一点,但没有运气 - 感谢任何指示或建议。

2017-09-06 18:49:09,160+0800 WARN [qtp762281666-4116] MIDALLE org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - 故障服务:PUT /repository/npm-hosted/@progress%2fkendo-ui java.lang.IllegalStateException:在 [Source: java.io.InputStreamReader@1ebad5c7; 出现意外的令牌 VALUE_NULL;行:1,列:896] 在 com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:150) 在 com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseObject(NpmPublishParser.java:174) 在 com.sonatype .nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:136) 在 com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseObject(NpmPublishParser.java:174) 在 com.sonatype.nexus.repository .npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:136) 在 com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parsePackageRoot(NpmPublishParser.java:123) 在 com.sonatype.nexus.repository.npm.internal .NpmPublishParser.parse(NpmPublishParser.java:98) 在 com.sonatype.nexus.repository.npm.internal.NpmRequestParser.parseNpmPublish(NpmRequestParser.java:81) 在 com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackage(NpmHostedFacetImpl.java:85) 在 com.sonatype.nexus.repository.npm.internal.NpmRequestParser.parsePublish(NpmRequestParser.java:60) 在 com .sonatype.nexus.repository.npm.internal.NpmHandlers$3.handle(NpmHandlers.java:172) 在 org.sonatype.nexus.repository.view.Context.proceed(Context.java:80)

这是来自关系日志的完整错误的要点

4

2 回答 2

1

此问题已在https://issues.sonatype.org/browse/NEXUS-14385范围内解决

修复版本/秒:3.6.1

解析 package.json 中的空值时出现问题

于 2019-02-12T07:46:27.543 回答
0

我得到了这个工作,但我仍在试图找出改变的影响。如果您应用相同的“hack”来使其正常工作,请小心。我不得不这样做,因为还有其他几个项目团队受到了影响。

简而言之,我不得不从 kendo-ui 包的 package.json 中删除几个键。我的分析是,这些设置使 npm 发出在我们的约束环境中失败的网络调用。

我删除的 package.json 键如下。

第一节

 "_resolved": "https://registry.npm.telerik.com/@progress%2fkendo-ui/-/kendo-ui-2017.2.621.tgz",
 "_shasum": "09a652ead21700716dd5a50f9e86e9bffcea640e",
 "_shrinkwrap": null,

第二节

 "dist": {
   "shasum": "09a652ead21700716dd5a50f9e86e9bffcea640e",
   "tarball": "http://registry.npm.telerik.com/@progress%2fkendo-ui/-/kendo-ui-2017.2.621.tgz"
  },

如果对 npm 和 npm 定义有更多了解的人可以告知 package.json 中这些设置的用途以及删除它们的潜在影响,我将非常感激。

于 2017-09-15T07:21:35.903 回答