index.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. module.exports = {
  2. rules: {
  3. 'google-font-display': require('./rules/google-font-display'),
  4. 'google-font-preconnect': require('./rules/google-font-preconnect'),
  5. 'inline-script-id': require('./rules/inline-script-id'),
  6. 'next-script-for-ga': require('./rules/next-script-for-ga'),
  7. 'no-assign-module-variable': require('./rules/no-assign-module-variable'),
  8. 'no-before-interactive-script-outside-document': require('./rules/no-before-interactive-script-outside-document'),
  9. 'no-css-tags': require('./rules/no-css-tags'),
  10. 'no-document-import-in-page': require('./rules/no-document-import-in-page'),
  11. 'no-duplicate-head': require('./rules/no-duplicate-head'),
  12. 'no-head-element': require('./rules/no-head-element'),
  13. 'no-head-import-in-document': require('./rules/no-head-import-in-document'),
  14. 'no-html-link-for-pages': require('./rules/no-html-link-for-pages'),
  15. 'no-img-element': require('./rules/no-img-element'),
  16. 'no-page-custom-font': require('./rules/no-page-custom-font'),
  17. 'no-script-component-in-head': require('./rules/no-script-component-in-head'),
  18. 'no-styled-jsx-in-document': require('./rules/no-styled-jsx-in-document'),
  19. 'no-sync-scripts': require('./rules/no-sync-scripts'),
  20. 'no-title-in-document-head': require('./rules/no-title-in-document-head'),
  21. 'no-typos': require('./rules/no-typos'),
  22. 'no-unwanted-polyfillio': require('./rules/no-unwanted-polyfillio'),
  23. },
  24. configs: {
  25. recommended: {
  26. plugins: ['@next/next'],
  27. rules: {
  28. // warnings
  29. '@next/next/google-font-display': 'warn',
  30. '@next/next/google-font-preconnect': 'warn',
  31. '@next/next/next-script-for-ga': 'warn',
  32. '@next/next/no-before-interactive-script-outside-document': 'warn',
  33. '@next/next/no-css-tags': 'warn',
  34. '@next/next/no-head-element': 'warn',
  35. '@next/next/no-html-link-for-pages': 'warn',
  36. '@next/next/no-img-element': 'warn',
  37. '@next/next/no-page-custom-font': 'warn',
  38. '@next/next/no-styled-jsx-in-document': 'warn',
  39. '@next/next/no-sync-scripts': 'warn',
  40. '@next/next/no-title-in-document-head': 'warn',
  41. '@next/next/no-typos': 'warn',
  42. '@next/next/no-unwanted-polyfillio': 'warn',
  43. // errors
  44. '@next/next/inline-script-id': 'error',
  45. '@next/next/no-assign-module-variable': 'error',
  46. '@next/next/no-document-import-in-page': 'error',
  47. '@next/next/no-duplicate-head': 'error',
  48. '@next/next/no-head-import-in-document': 'error',
  49. '@next/next/no-script-component-in-head': 'error',
  50. },
  51. },
  52. 'core-web-vitals': {
  53. plugins: ['@next/next'],
  54. extends: ['plugin:@next/next/recommended'],
  55. rules: {
  56. '@next/next/no-html-link-for-pages': 'error',
  57. '@next/next/no-sync-scripts': 'error',
  58. },
  59. },
  60. },
  61. }