YAML语法问题
我是新来YAML,只知道JSON和XML格式YAML语法问题
我有TravisCI此.yml配置和它有一些奇怪的语法错误,我无法弄清楚如何解决它。
本来我有这个,一切都还顺利:
language: node_js
node_js:
- '7'
- '6'
- '5'
- '4'
script: 'npm install istanbul && node cli.js --coverage test/testsrc/es5-es6/a.js'
after_script: 'npm install coveralls && cat coverage/lcov.info | ./node_modules/.bin/coveralls'
notifications:
email: false
slack:
rooms:
- sumanjs:gvauyHhXXXXXpV5v8LlQOAcI#general
不过,我看到,我们需要得到容器提供一些C++库,所以我不得不有的一些东西添加到.yml文件根据这些指令:
所以现在我有这个,这是无效的,但我不知道为什么:
language: node_js
node_js:
- '7':
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- '6':
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- '5':
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- '4':
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
script: 'npm install istanbul && node cli.js --coverage test/testsrc/es5-es6/a.js'
after_script: 'npm install coveralls && cat coverage/lcov.info | ./node_modules/.bin/coveralls'
notifications:
email: false
slack:
rooms:
- sumanjs:gvauyHhXXXXXcuzpV5QOAcI#general
我把这个交给一个YAML棉短绒和它说:
这不是太奇怪了。您具有密钥'7'
作为映射的第一个键值对,该映射是作为键node_js
(即文件中该标量的第二次出现)的值的序列的第一个元素。
该键的缩进位置是从行首开始的四个位置,因此映射的所有内容都应至少包含该缩进。 env:
但是没有缩进四个位置,所以这是一个错误。
如果键'7'
的值是(不可见的)null
那么缩进env
多一个。如果该值是(除其他之外)具有密钥env
的映射,则缩进env
至少两个以上的位置。
显然使用正确的格式是像这样:
language: node_js
node_js:
- '7'
- '6'
- '5'
- '4'
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
script: 'npm install istanbul && node cli.js --coverage test/testsrc/es5-es6/a.js'
after_script: 'npm install coveralls && cat coverage/lcov.info | ./node_modules/.bin/coveralls'
notifications:
email: false
slack:
rooms:XXXXXXXXXzpV5v8LXXcI#travis-ci
如果我们想将env /插件键适用于单独Node.js的版本,但是,我不知道怎么会工作。
有一件事是一个正确的YAML文件,因为你必须进一步缩进'env'就像我在我的答案中指出的那样。另一件事是,YAML一旦可以加载,是否在语义上是Travis的正确输入。后面的部分我无法帮助你。 – Anthon
是的,这是真的,我个人缺少关于Travis的困难情况的语法和语义正确的yaml的信息。这似乎适用于Travis,但我不确定为什么env/addon键/值没有为每个Node.js版本单独定义(4,5,6,7),所以我仍然在语义上和语义上都处于黑暗中, 好吧 :) –
谢谢,我更新了问题,使其更清楚,我开始了有效的yml,添加了一些东西,现在它是无效的,仍然试图找出这一点 –