javascript - APM 标头内容包含无效字符
问题描述
我正在尝试发布 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": {
}
}
我在这里唯一改变的是版本的第二个数字。
解决方案
这个问题现在已经很老了,但它仍然是这个问题的最佳结果之一——所以我要添加我的解决方案。
TLDR:您可能不小心在身份验证令牌中添加了非法字符(换行符等)。您可以通过以下方式解决此问题:
- 从您的操作系统使用的任何密钥环中删除旧的身份验证令牌。在 Windows 10 中,它位于控制面板\用户帐户\凭据管理器下。
- 命令“apm publish minor”应重新提示您的身份验证令牌。当它出现时,按几次退格键,然后重新输入令牌。请注意,令牌末尾没有任何不可见的字符。
就是这样——你的包现在应该发布了!
长版:
当 apm publish 检测到您的 package.json 文件存在问题时,它会抛出Error parsing package.json file:并为您提供错误令牌/字符的位置。在这种情况下失败的标头内容在实际 json 之前发送,并且包括您的身份验证令牌之类的内容。
那么,一般而言,这个标头将被破坏的是您已更改的一件事 - 身份验证令牌。当将意外字符(通常是不可见字符)添加到您的令牌时,它会中断此 pre-json 标头的处理。而且由于您的计算机帮助将这个损坏的令牌保存到密钥环中,因此您将无休止地收到这个神秘的错误。
推荐阅读
- ios - 在 SpriteKit 项目中包含一个 UIKit 小游戏
- r - R图:pdf以外的设备的损坏/丢失字符
- javascript - 如何删除 Vue Chart 数据点上的文本?
- amazon-web-services - 如何在 python 中从 AWS 下载数据
- ubuntu - “行为”可以处理 /etc/host 文件中的设置吗?
- vue.js - Vue路由器通配符会走错路
- sql - 如果注入的查询正确,则可能的 SQL 注入并重定向到网页
- java - 如何从 Java 的 .groovy 脚本中获取相关参数、类和方法?
- python - Django - django-privacy-mgmt 包不显示 html
- java - 如何设置标准图像以显示搜索关联图像名称是否没有结果?