我的ESLint设置在我的React-Native应用程序中给出了以下错误:
Mixed spaces and tabs: Expected indentation of 4 space characters but found 14.
出于某种原因,它希望它不喜欢的行只缩进4个空格而不是14个空格。
以下是linter接受的内容:
显然,第25-27行不是我想要的。
是否有一些我缺少的设置或一个可以实现此目的的额外插件?
我正在使用:
.eslintrc
{
"extends": ["airbnb/base", "plugin:react/recommended"],
"plugins": [
"react",
"react-native"
],
"env": {
"node": true,
"jasmine": true,
"es6": true
},
"rules": {
"indent": ["error", 2],
"no-console": 0,
"no-unused-vars": [1, {"vars": "local", "args": "none"}],
"react/forbid-prop-types": 1,
"react/jsx-boolean-value": 1,
"react/jsx-closing-bracket-location": 1,
"react/jsx-curly-spacing": 1,
"react/jsx-indent-props": 1,
"react/jsx-key": 1,
"react/jsx-max-props-per-line": 1,
"react/jsx-no-duplicate-props": 1,
"react/jsx-no-undef": 1,
"react/jsx-quotes": 0,
"jsx-quotes": 1,
"react/sort-prop-types": 1,
"react/jsx-sort-props": 1,
"react/jsx-uses-react": 1,
"react/jsx-uses-vars": 1,
"react/no-danger": 1,
"react/no-did-mount-set-state": 1,
"react/no-did-update-set-state": 1,
"react/no-direct-mutation-state": 1,
"react/no-multi-comp": 1,
"react/no-set-state": 1,
"react/no-unknown-property": 1,
"react/prefer-es6-class": 1,
"react/prop-types": 1,
"react/react-in-jsx-scope": 1,
"react/require-extension": 1,
"react/self-closing-comp": 1,
"react/sort-comp": 1,
"react/wrap-multilines": 1,
"id-length": 0,
"react-native/no-unused-styles": 2,
"react-native/split-platform-components": 2
},
"parserOptions": {
"ecmaVersion": 6,
"ecmaFeatures": {
"jsx": true
}
}
}
的package.json
{
"name": "pluralReact",
"version": "0.0.0",
"description": "template",
"author": "= <=> (=)",
"private": true,
"main": "main.js",
"exp": {
"sdkVersion": "5.0.0"
},
"dependencies": {
"react": "^0.14.5",
"react-native": "github:exponentjs/react-native#sdk-5.0.0"
},
"devDependencies": {
"eslint": "^2.8.0",
"eslint-config-airbnb": "^8.0.0",
"eslint-config-airbnb-base": "^1.0.3",
"eslint-plugin-import": "^1.6.0",
"eslint-plugin-jsx-a11y": "^1.0.2",
"eslint-plugin-react": "^5.0.1",
"eslint-plugin-react-native": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"license": "ISC"
}
解答:
使用空格而不是表格更改周围的图像标记解决了这个问题:
答案 0 :(得分:1)
您的代码可能会被制表符缩进而不是空格。有一个设置可以使视觉区分更容易。
"draw_white_space": "all"
(默认设置为"selection"
,因此您只会在选择代码时看到这些视觉提示)
由于JSX linter(以及其他)似乎更喜欢选项卡上的空格,因此您应该使用以下内容添加到您的用户设置中。
"translate_tabs_to_spaces": true
"tab_size": 2
确保之后重新缩进代码。
答案 1 :(得分:0)
使用 eslint-config-airbnb-standard npm模块:
npm install -g eslint-config-airbnb-standard
它在全球范围内安装eslint
。它使用Airbnb样式配置+ StandardJS配置。易于安装,适用于Sublime Text 3和WebStorm。检查installation instructions here。