当我运行构建脚本时,JSHint向我显示以下错误:
Running "jshint:all" (jshint) task
app/module/monitoring.module/model/test.service.js
line 8 col 13 Expected 'x' to have an indentation at 5 instead at 13.
line 9 col 13 Expected 'y' to have an indentation at 5 instead at 13.
line 10 col 9 Expected '}' to have an indentation at 1 instead at 9.
✖ 3 problems
以下是此测试文件的代码:
'use strict';
var foo = { 'bar': function () {} };
foo
.bar(
'a',
{
'x': 1,
'y': 2
},
'b'
);
如果我直接运行jshint test.service.js
,则不会抛出任何错误。这是我的.jshint
:
{
"node": true,
"browser": true,
"esnext": true,
"bitwise": false,
"camelcase": true,
"curly": false,
"eqeqeq": false,
"immed": true,
"indent": 4,
"latedef": true,
"loopfunc": false,
"newcap": true,
"noarg": true,
"quotmark": "single",
"regexp": true,
"undef": true,
"unused": true,
"strict": true,
"trailing": true,
"smarttabs": true,
"boss": true,
"globals": {
"angular": false,
"alert": false,
"jQuery": false,
"$": false,
"d3": false,
"_": false,
"describe": false,
"it": false,
"expect": false,
"kronosCharts": true,
"moment": false,
"OpenLayers": false
}
}
但我认为,这些选项都不应该告诉JSHint不喜欢我的缩进。我在这里做错了什么?
修改
因为有评论,我的缩进不好和/或违反标准,这是真正的代码。如果你能告诉我一个好的(或标准的)方法来缩进,这对我也有帮助:
var webserviceRequest = webservice.createRequest();
webserviceRequest
.addMethodRequest(
'GetFilterItems',
{
'Start': start,
'NumItems': numItems
},
function (items) {
items = syncItems(items);
callback(items);
}
)
.send()
;
编辑2
这是JSHint告诉我要做的事情:
'use strict';
var foo = { 'bar': function () {} };
foo
.bar(
'a',
{
'x': 1,
'y': 2
},
'b'
);
明天我会写错误报告......
答案 0 :(得分:0)
这是我的建议作为起点;如果您不确定如何缩进/替换代码,请将其粘贴到删除所有空格(http://jscompress.com/)的程序中,然后将其粘贴到格式化程序(http://jsbeautifier.org/)中看看它是怎么出来的。
您的示例按原样输出:
"use strict";
var foo = {
bar: function () {}
};
foo.bar("a", {
x: 1,
y: 2
}, "b")
和
var webserviceRequest = webservice.createRequest();
webserviceRequest.addMethodRequest("GetFilterItems", {
Start: start,
NumItems: numItems
}, function (e) {
e = syncItems(e);
callback(e)
}).send()