Ошибка спецификации, ошибка ввода не обнаружена

Это мой JSON

{
"name": "dockerizing-magento",
"description": "ADockerizedMagentoCommunityEdition",
"require": {
"magento-hackathon/magento-composer-installer": "v2.1.1",
"magento/core": "1.9.1.0-patch1"},
"require-dev": {},
"repositories": [],
"extra": {
"magento-root-dir": "web",
"auto-append-gitignore": true
},
"config": {
"discard-changes": true
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"post-install-cmd": [],
"post-update-cmd": []
}
}

Когда я пытаюсь composer update

это дает ошибку

[SELd \ JsonLint \ ParsingException] «./composer.json» не содержит допустимый JSON
Обнаружена спецификация, убедитесь, что ваш ввод не содержит Unicode
Byte-Order-Mark

обновить [—prefer-source] [—prefer-dist] [—dry-run] [—dev] [—no-dev] [—lock] [—no-plugins] [—no-custom-installers] [—no-autoloader] [—no-scripts] [—no-progress] [—with-dependencies] [-v | vv | vvv | —verbose] [-o | —optimize-autoloader] [-a | —classmap-authoritative] [—ignore-platform-reqs] [—prefer-stable] [—prefer-lower] [-i | —interactive] [—root-reqs] [-] [] …

но это действительно по нескольким сайтам

https://jsonformatter.curiousconcept.com/

например здесь

Я следую этому уроку

https://andykdocs.de/development/Docker/Dockerize-Magento

Но в течение нескольких часов я получил эту ошибку. Пожалуйста помоги

Я пытаюсь построить magento внутри докера.

3

Решение

Порядок следования байтов (Для краткости BOM) — это то, что существует только в файле. Когда редактор или просмотрщик текста отображает ваш composer.json, он удаляет спецификацию, поэтому, если вы вставите содержимое composer.json в веб-линтер, у него больше не будет спецификации, и веб-инструменты, в которые вы вставляете, будут проверять ее. Что вы должны сделать, это удалить спецификацию из файл что вы можете сделать с awk Команда, которую я позаимствовал из этого ответа

mv composer.json composer-bom.json # rename file with BOM
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}{print}' composer-bom.json > composer.json
rm -f composer-bom.json # delete file with BOM
1

Другие решения

Я столкнулся с awk, не узнаваемым в PowerShell. Поэтому я нашел гораздо более простое решение. Откройте Блокнот и просто скопируйте и вставьте то, что находится в файле композитора. Сохраните файл, а затем переименуйте файл composer.json, и все будет работать так, как вы ожидали.

0