eslintDeps.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const DEPS_MAP = {
  2. base: {
  3. eslint: '^6.7.2',
  4. 'eslint-plugin-vue': '^6.2.2'
  5. },
  6. airbnb: {
  7. '@vue/eslint-config-airbnb': '^5.0.2',
  8. 'eslint-plugin-import': '^2.20.2'
  9. },
  10. prettier: {
  11. '@vue/eslint-config-prettier': '^6.0.0',
  12. 'eslint-plugin-prettier': '^3.1.3',
  13. prettier: '^1.19.1'
  14. },
  15. standard: {
  16. '@vue/eslint-config-standard': '^5.1.2',
  17. 'eslint-plugin-import': '^2.20.2',
  18. 'eslint-plugin-node': '^11.1.0',
  19. 'eslint-plugin-promise': '^4.2.1',
  20. 'eslint-plugin-standard': '^4.0.0'
  21. },
  22. typescript: {
  23. '@vue/eslint-config-typescript': '^5.0.2',
  24. '@typescript-eslint/eslint-plugin': '^2.33.0',
  25. '@typescript-eslint/parser': '^2.33.0'
  26. }
  27. }
  28. exports.DEPS_MAP = DEPS_MAP
  29. exports.getDeps = function (api, preset, rootOptions = {}) {
  30. const deps = Object.assign({}, DEPS_MAP.base, DEPS_MAP[preset])
  31. if (rootOptions.vueVersion === '3') {
  32. Object.assign(deps, { 'eslint-plugin-vue': '^7.0.0-0' })
  33. }
  34. if (api.hasPlugin('typescript')) {
  35. Object.assign(deps, DEPS_MAP.typescript)
  36. }
  37. if (api.hasPlugin('babel') && !api.hasPlugin('typescript')) {
  38. Object.assign(deps, {
  39. 'babel-eslint': '^10.1.0'
  40. })
  41. }
  42. return deps
  43. }