0

我正在尝试发布 Atom 包的小更新,但我不断收到“标题内容包含无效字符”

我做了什么:克隆 repo,设置远程分支,获取分支,提取内容。修改东西。更改 package.json 中的版本。混帐添加。git 提交。混帐推。

然后我使用了 apm publish minor。

我不断收到这个烦人的错误,我在互联网上找不到任何东西。我什至不知道如何获得更多细节,甚至标题是什么?是 package.json 吗?

这是 package.json 默认情况下对于 atom 包的外观:

{
  "name": "my-test-package",
  "main": "./lib/my-test-package",
  "version": "0.0.0",
  "description": "A short description of your package",
  "keywords": [
  ],
  "activationCommands": {
    "atom-workspace": "my-test-package:toggle"
  },
  "repository": "https://github.com/atom/my-test-package",
  "license": "MIT",
  "engines": {
    "atom": ">=1.0.0 <2.0.0"
  },
  "dependencies": {
  }
}

我在这里唯一改变的是版本的第二个数字。

4

1 回答 1

1

这个问题现在已经很老了,但它仍然是这个问题的最佳结果之一——所以我要添加我的解决方案。

TLDR:您可能不小心在身份验证令牌中添加了非法字符(换行符等)。您可以通过以下方式解决此问题:

  1. 从您的操作系统使用的任何密钥环中删除旧的身份验证令牌。在 Windows 10 中,它位于控制面板\用户帐户\凭据管理器下。
  2. 命令“apm publish minor”应重新提示您的身份验证令牌。当它出现时,按几次退格键,然后重新输入令牌。请注意,令牌末尾没有任何不可见的字符。

就是这样——你的包现在应该发布了!


长版:

当 apm publish 检测到您的 package.json 文件存在问题时,它会抛出Error parsing package.json file:并为您提供错误令牌/字符的位置。在这种情况下失败的标头内容在实际 json 之前发送,并且包括您的身份验证令牌之类的内容。

那么,一般而言,这个标头将被破坏的是您已更改的一件事 - 身份验证令牌。当将意外字符(通常是不可见字符)添加到您的令牌时,它会中断此 pre-json 标头的处理。而且由于您的计算机帮助将这个损坏的令牌保存到密钥环中,因此您将无休止地收到这个神秘的错误。

于 2019-05-06T04:37:37.600 回答