2016-05-03 1 views
0

Я не могу понять, где мой синтаксис выключен. Я пробовал сотни вариантов этого контента. Я использую yaml-loader из webpack. Итак, парсер javascript.YAMLException: неполная явная карта сопоставления

--- 
colors: 
    - orange: 
    100: "#hexcode" 
    75: "#hexcode" 
    50: "#hexcode" 
    25: "#hexcode" 
    - red: 
    100: "#hexcode" 
    75: "#hexcode" 
    50: "#hexcode" 
    25: "#hexcode" 

Вот полная ошибка:

ERROR in ./~/json-loader!./~/yaml-loader!./data/colors.yaml 
Module build failed: YAMLException: incomplete explicit mapping pair; a key node is missed at line 1, column 73: 
    ... :\n 100: \"#hexcode\"\n 75: \"#hexcode\"\n 

Там есть указатель морковь на : из 75:

+0

Вы должны размещать больше о вашей проблеме. Вы получаете ошибку синтаксического анализа? Структуру, которую вы не ожидали? Что вы видите? – BadZen

+0

Это говорит о том, что ямль является чувствительным к пробелу: вкладки и пробелы не являются взаимозаменяемыми в начале строк, в частности, где требуются отступы. – BadZen

+0

Спасибо за отзыв @BadZen - это ошибка синтаксического анализа (ссылка в заголовке, теперь добавленная в тело, чтобы быть более явной). У меня есть автоматическая вкладка в настройку пространства env. Может быть, вы можете посмотреть новый отчет об ошибке и посмотреть, звонит ли звонок? Thanksl – motleydev

ответ

0

К сожалению разбора YAML является сложным делом; поэтому, хотя это может быть применимо к некоторым синтаксическим анализаторам (например, Ruby's YAML разбирает это просто отлично), он может быть недействительным для других.

Это также зависит от того, какая структура вам нужно colors быть, в тот момент, рубин выражает, что как массив объектов:

{"colors"=> 
    [ 
    {"orange"=>nil, 100=>"#hexcode", 75=>"#hexcode", 50=>"#hexcode", 25=>"#hexcode"}, 
    {"red"=>nil, 100=>"#hexcode", 75=>"#hexcode", 50=>"#hexcode", 25=>"#hexcode"} 
    ] 
} 

где orange и red являются неопределенные ключи (что имеет смысл).

То, что вы, вероятно, хотите, вложенный объект, например, так:

--- 
colors: 
    orange: 
     100: "#hexcode" 
     # ... 
    red: 
     100: "#hexcode" 
     # ... 
+0

Спасибо за ответ, к сожалению, все еще не работает. Я редактировал вопрос с более подробной информацией об ошибке. Это парсер javascript, но я на самом деле не разбиваю банк на «творчество ямля» - может быть, новое редактирование показывает что-то новое? – motleydev

+0

Как предложение Ника не работает? Кажется, это правильное решение. – flyx

+0

та же ошибка синтаксического разбора с этим форматом. Я пробовал два разных парсера. Это может быть какая-то ошибка. – motleydev

Смежные вопросы