Почему мой файл конфигурации ESLint не работает с React Native? - PullRequest
1 голос
/ 16 октября 2019

Используя VSCode, я создал приложение React Native, используя expo-cli. Я хочу использовать ESLint и Prettier для улучшения качества моего кода.
Я ожидал, что ESLint напечатал ошибку на моей вкладке «Проблемы», например, если у меня была эта строка var asd = 1; в App.js, ESLint выведет Unexpected var, use let or const instead.
У меня была настройка файла конфигурации ESLint, я намеренно неправильно написал код, чтобы проверить, работает ли ESLint, но я не увидел никаких ошибок.
ESLint для VSCode уже установлен с версией 1.9.1 и в ссылке содержится мой структура проекта .

Это мой код App.js с двумя местами, в которых я ожидаю появления ошибок:

import React from "react";
import { StyleSheet, Text, View } from "react-native";

export default function App() {
  return (
    <View style={styles.container}>
      <Text>Open up App.js to start working on your app!</Text>
    </View>
  );
}

var asd = 1; // this should show error

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
    alignItems: "center",
    justifyContent: "center"
  }
});

const zzz = StyleSheet.create({
  // this should show error based on react-native/no-unused-styles rule in eslint config
  container: {
    flex: 1,
    backgroundColor: "#fff",
    alignItems: "center",
    justifyContent: "center"
  }
});

Это мой файл .eslintrc.json:

{
  "extends": [
    "airbnb",
    "prettier",
    "plugin:node/recommended",
    "plugin:react/recommended"
  ],
  "plugins": ["prettier", "react", "react-native"],
  "env": {
    "es6": true,
    "browser": true,
    "node": true,
    "react-native/react-native": true
  },
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "rules": {
    "prettier/prettier": "warn",
    "no-unused-vars": "warn",
    "no-console": "off",
    "func-names": "off",
    "no-process-exit": "off",
    "no-alert": "warn",
    "object-shorthand": "off",
    "class-methods-use-this": "off",
    "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
    "react-native/no-unused-styles": "error"
  },
  "settings": {
    "import/resolver": {
      "node": {
        "extensions": [".js", ".ios.js", ".android.js"]
      }
    }
  }
}

1 Ответ

0 голосов
/ 16 октября 2019

My parserOptions в файле конфигурации недостаточно подробностей. Мне нужно обновить его, как показано ниже:

"parserOptions": {
  "ecmaVersion": 6,
  "sourceType": "module",
  "ecmaFeatures": {
      "jsx": true
  }
},

Это идиотский вопрос. Извините за беспокойство.

...