有没有在本地验证 YAML 的好方法?我在部署时的生产环境中有几个 YAML 问题,例如
https://gist.github.com/anonymous/78bed61832ff72ff3426
信息量不是很大,我想知道发生这种情况的文件。是否可以进一步改进调试 yaml 问题?
我也不确定为什么这只发生在生产中而不是开发中。
有没有在本地验证 YAML 的好方法?我在部署时的生产环境中有几个 YAML 问题,例如
https://gist.github.com/anonymous/78bed61832ff72ff3426
信息量不是很大,我想知道发生这种情况的文件。是否可以进一步改进调试 yaml 问题?
我也不确定为什么这只发生在生产中而不是开发中。
我最终编写了一个 rake 任务来执行此操作:例如另存为 /lib/yaml.rake (.rake !不是 .rb)
namespace :yaml do
desc "Test YAML files"
task :check => :environment do
require 'yaml'
d = Dir["./**/*.yml"]
d.each do |file|
begin
puts "checking : #{file}"
f = YAML.load_file(file)
rescue Exception
puts "failed to read #{file}: #{$!}"
end
end
end
end
好吧,根据我的经验,在 YAML 中追踪错误并不容易。像yamllint这样的在线工具通常会给出类似 Psych 提供的错误消息。
我唯一能建议的是:检查本地/生产 YAML 文件的差异,看看有什么变化。