APM标头内容包含无效字符

时间:2018-12-14 06:18:13

标签: javascript node.js git atom-editor apm

我正在尝试对Atom包进行次要更新,但我不断收到“标头内容包含无效字符”

我做了什么: 克隆了仓库 设置远程分支,获取分支,提取内容。 修改内容。 更改package.json中的版本。 git添加。 git提交。 git push。

然后我使用apm publish minor。

我一直收到这个令人讨厌的错误,但是我在互联网上找不到任何东西。我什至不知道如何获取更多详细信息,甚至标题是什么?是package.json吗?

这是默认情况下原子包的package.json外观:

{
  "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": {
  }
}

我唯一更改的是版本的第二位。

1 个答案:

答案 0 :(得分:1)

这个问题现在已经很老了,但是它仍然是该问题的最佳结果之一-因此,我将添加解决方案。

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

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

就是这样-您的软件包现在应该发布了!


长版:

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

通常,关于此标头的问题是您已更改的一件事-身份验证令牌。当将意外的字符(通常是不可见的字符)添加到令牌中时,它会中断此json前标头的处理。并且由于您的计算机有帮助地将这个损坏的令牌保存到了钥匙圈,因此您将无休止地收到这个神秘的错误。