.eslintrc.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. module.exports = {
  2. root: true,
  3. env: {
  4. browser: true,
  5. node: true,
  6. jest: true,
  7. },
  8. parserOptions: {
  9. sourceType: "module",
  10. requireConfigFile: false,
  11. },
  12. extends: [
  13. "@nuxtjs",
  14. "@nuxtjs/eslint-config-typescript",
  15. "prettier/prettier",
  16. "eslint:recommended",
  17. "plugin:vue/recommended",
  18. "plugin:prettier/recommended",
  19. "plugin:nuxt/recommended",
  20. ],
  21. plugins: ["vue", "prettier"],
  22. // add your custom rules here
  23. rules: {
  24. semi: [2, "never"],
  25. "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
  26. "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
  27. "vue/max-attributes-per-line": "off",
  28. "vue/component-name-in-template-casing": ["error", "PascalCase"],
  29. "vue/html-self-closing": [
  30. "error",
  31. {
  32. html: {
  33. normal: "never",
  34. void: "always",
  35. },
  36. },
  37. ],
  38. "vue/singleline-html-element-content-newline": "off",
  39. "vue/multiline-html-element-content-newline": "off",
  40. "vue/require-default-prop": "warn",
  41. "vue/require-prop-types": "warn",
  42. "prettier/prettier": ["warn", { semi: false }],
  43. "import/no-named-as-default": "off",
  44. "no-undef": "off",
  45. // localStorage block
  46. "no-restricted-globals": [
  47. "error",
  48. {
  49. name: "localStorage",
  50. message:
  51. "Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
  52. },
  53. ],
  54. // window.localStorage block
  55. "no-restricted-syntax": [
  56. "error",
  57. {
  58. selector: "CallExpression[callee.object.property.name='localStorage']",
  59. message:
  60. "Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
  61. },
  62. ],
  63. },
  64. globals: {
  65. $nuxt: true,
  66. },
  67. }