我有一个通过Travis CI的GitHub project。在为新功能创建pull request后,Travis CI fails由于两个错误导致pr和push:
/home/travis/build/enove/Thriver/packages/thriver-accounts/lib/accounts.js
121:5 error Strings must use singlequote quotes
122:5 error Strings must use singlequote quotes
accounts.js
的第119至122行如下:
119: return `Hello ${user.profile.firstname}!\n\n` +
120: `To verify your account email, simply click the link below.\n\n${url}\n\n` +
121: `If you weren't expecting this email, simply delete it.\n\n` +
122: `Thanks!\n\nAll of us at WCASA`;
提交甚至没有更改accounts.js
,并且本地eslint通过而没有错误。我检查并验证了node,npm和meteor的版本在本地与Travis CI中的版本相同。
Travis CI配置如下:
{
"sudo": "required",
"language": "node_js",
"node_js": "4.1.1",
"before_install": [
"curl -L https://git.io/ejPSng | /bin/sh"
],
"env": "CXX=g++-4.8",
"addons": {
"apt": {
"sources": [
"ubuntu-toolchain-r-test"
],
"packages": [
"g++-4.8"
]
}
},
"services": "mongodb",
"script": [
"meteor npm run lint"
],
"group": "stable",
"dist": "precise",
"os": "linux"
}
.eslintrc
如下:
{
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 6,
"ecmaFeatures": {
"impliedStrict": true
}
},
"env": {
"browser": true,
"node": true,
"mongo": true,
"meteor": true
},
"extends": [
"airbnb"
//"plugin:meteor/recommended"
],
"globals": {
"Thriver": true,
"SimpleSchema": true,
"Marked": true,
"SHA256": true,
"google": true,
"geoXML3": true,
"AutoForm": true,
"details_shim": true
},
"rules": {
"no-underscore-dangle": 0,
"new-cap": 0
}
}
之前发生在另一个文件中,我已经解决了#34;让eslint忽略这一行的问题。但我无法解决每一个神秘问题。有什么建议吗?
答案 0 :(得分:0)
http://eslint.org/docs/rules/quotes
这很可能解决了您的问题。
JavaScript允许您以三种方式之一定义字符串:双引号,单引号和反引号(从ECMAScript 6开始)。例如:
/*eslint-env es6*/
var double = "double";
var single = 'single';
var backtick = `backtick`; // ES6 only
如何在代码库中定义字符串的选择是模板文字之外的风格(允许嵌入表达式进行解释)。许多代码库要求以一致的方式定义字符串。
我会尝试设置其中一条规则并再次运行测试。
如果这不能解决您的问题,请告诉我们!
答案 1 :(得分:0)
我仍然不知道eslint是如何在本地传递的。也许我在eslint或airbnb版本中落后了。但是,我意识到线路确实需要纠正。底部的两行代码不应该使用反向标记,因为这些字符串中没有任何变量。
119: return `Hello ${user.profile.firstname}!\n\n` +
120: `To verify your account email, simply click the link below.\n\n${url}\n\n` +
121: 'If you weren\'t expecting this email, simply delete it.\n\n' +
122: 'Thanks!\n\nAll of us at WCASA';
使用不同样式的串联字符串,Eslint会更加满意,而不是每个段都包含变量。