当前位置:   article > 正文

vue2项目配置prettier + eslint + commitlint + stylelint_vue2 stylelint

vue2 stylelint

目录

1、全局安装vue、vue-cli

2、安装commitlint

2.1、package.json中自动会新增如下配置

2.2、项目根目录自动新增commitlint.config.js文件,配置如下

 3、添加eslint提交检测

3.1、安装eslint-config-prettier、eslint-plugin-prettier、lint-staged

3.2、在根目录新增.eslintrc.js文件,具体配置需要根据项目自行配置,常用配置查看可以访问 https://blog.csdn.net/Sharon598/article/details/123333163 第4条,在这里,我就简单配置如下:

3.3、根目录新增lint-staged.config.js文件,配置如下:

3.4、package.json文件配置修改,配置如下:

3.5、配置.eslintignore文件,这个文件是配置哪些文件不需要eslint检测的,所以可以根据自己项目自行配置此文件,配置如下:

3.6、package.json文件配置lint脚本检测代码

4、添加prettier优化代码

4.1、添加.prettierrc.js文件,配置如下:

4.2、添加.prettierignore,可以根据项目需要,自行配置

4.3、lint-staged-config.js文件修改如下

4.4、package.json添加prettier脚本

5、添加stylelint提交检测配置

5.1、安装stylelint、stylelint-config-recommended-vue、stylelint-config-standard、stylelint-config-prettier、stylelint-order、stylelint-less、postcss-html、postcss-less@4.0.0(必须是这个版本,否则会报错)

5.2、添加.stylelintignore文件,配置如下

5.3、添加.stylelintrc.js文件,配置如下

5.4、package.json添加stylelint脚本


1、全局安装vue、vue-cli

        vue2的项目,必须使用vue2对应得vue-cli的版本,vue-cli4.5以上对应的就是vue3了,所以:

  1. npm install -g vue@2.7.10
  2. npm install -g @vue/cli@4.4.6

2、安装commitlint

vue add commitlint

 执行完以后项目分别有以下变化

2.1、package.json中自动会新增如下配置

 

 

2.2、项目根目录自动新增commitlint.config.js文件,配置如下

 3、添加eslint提交检测

3.1、安装eslint-config-prettier、eslint-plugin-prettier、lint-staged

npm install --save-dev eslint-config-prettier eslint-plugin-prettier lint-staged

3.2、在根目录新增.eslintrc.js文件,具体配置需要根据项目自行配置,常用配置查看可以访问 https://blog.csdn.net/Sharon598/article/details/123333163 第4条,在这里,我就简单配置如下:

  1. module.exports = {
  2. root: true,
  3. env: {
  4. node: true
  5. },
  6. extends: [
  7. 'plugin:vue/essential',
  8. 'eslint:recommended',
  9. 'plugin:prettier/recommended'
  10. ],
  11. parserOptions: {
  12. ecmaVersion: 2020
  13. },
  14. rules: {
  15. 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
  16. 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
  17. 'prettier/prettier': 'off'
  18. }
  19. }

3.3、根目录新增lint-staged.config.js文件,配置如下:

  1. module.exports = {
  2. '*.{js,vue}': [
  3. 'vue-cli-service lint ./src --fix',
  4. 'git add'
  5. ]
  6. }

3.4、package.json文件配置修改,配置如下:

  1. "husky": {
  2. "hooks": {
  3. "pre-commit": "lint-staged",
  4. "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
  5. }
  6. }

重启项目,在页面中随意定义一个变量,例如:

  1. handleCancel() {
  2. let aaa = [];
  3. this.visible = false;
  4. }

提交代码,报错如下:

3.5、配置.eslintignore文件,这个文件是配置哪些文件不需要eslint检测的,所以可以根据自己项目自行配置此文件,配置如下:

  1. dist/*
  2. node_modules/*
  3. packages/*
  4. public/*

3.6、package.json文件配置lint脚本检测代码

  1. "scripts": {
  2. "lint": "eslint src/**/* --ext .js,.vue"
  3. }

重启项目,执行npm run lint,项目就会检测哪些代码不符合要求

4、添加prettier优化代码

4.1、添加.prettierrc.js文件,配置如下:

  1. module.exports = {
  2. // 超过80就换行
  3. printWidth: 80,
  4. // tab缩进大小,默认为2
  5. tabWidth: 2,
  6. // 使用tab缩进,默认false
  7. useTabs: false,
  8. // 使用分号,默认true
  9. semi: false,
  10. // 使用单引号, 默认false,(在jsx中配置无效, 默认都是双引号)
  11. singleQuote: true,
  12. // 行尾逗号,默认none,可选(none|es5|all),es5 包括es5中的数组、对象,all 包括函数对象等所有可选
  13. trailingComma: 'none',
  14. // 对象中的空格 默认truetrue: { foo: bar },false: {foo: bar}
  15. bracketSpacing: true,
  16. // JSX标签闭合位置 默认false
  17. jsxBracketSameLine: false,
  18. // 箭头函数参数括号 默认avoid 可选(avoid|always),avoid 能省略括号的时候就省略 例如x => x ,always 总是有括号
  19. arrowParens: 'avoid',
  20. // 不使用prettier格式化的文件填写在项目的.prettierignore文件中
  21. ignorePath: '.prettierignore',
  22. // 在jsx中把'>' 是否单独放一行
  23. jsxBracketSameLine: false
  24. }

4.2、添加.prettierignore,可以根据项目需要,自行配置

  1. dist/*
  2. node_modules/*
  3. packages/*
  4. public/*

4.3、lint-staged-config.js文件修改如下

  1. module.exports = {
  2. '*.{js,vue}': [
  3. 'vue-cli-service lint ./src --fix',
  4. 'prettier --write ./src',
  5. 'git add'
  6. ]
  7. }

4.4、package.json添加prettier脚本

  1. "scripts": {
  2. "lint:fix": "prettier src/**/* --write",
  3. }

重启项目,执行npm run lint:fix,会发现项目中有不符合规范的代码,自动被修复了,pretter只会自动修复不影响逻辑的代码,影响逻辑的代码,需要手动修复

4.5、执行npm run lint:fix后,可能会在终端出现这种提示

 此时只需要,执行 git config core.autocrlf false 即可

5、添加stylelint提交检测配置

5.2、添加.stylelintignore文件,配置如下

  1. dist/*
  2. node_modules/*
  3. packages/*
  4. public/*

5.3、添加.stylelintrc.js文件,配置如下

  1. module.exports = {
  2. // extends: ['stylelint-config-standard', 'stylelint-config-prettier', 'stylelint-config-html', "stylelint-config-standard-scss", 'stylelint-config-recommended-vue'],
  3. extends: [
  4. 'stylelint-config-recommended',
  5. 'stylelint-config-standard',
  6. 'stylelint-config-recommended-vue',
  7. 'stylelint-config-html',
  8. 'stylelint-config-prettier'
  9. ],
  10. plugins: ['stylelint-order', 'stylelint-less'],
  11. ignorePath: '.stylelintignore',
  12. overrides: [
  13. {
  14. files: ['**/*.{html,vue}'],
  15. customSyntax: 'postcss-html'
  16. },
  17. {
  18. files: ['**/*.less'],
  19. customSyntax: 'postcss-less'
  20. }
  21. ],
  22. rules: {
  23. indentation: 2,
  24. 'selector-pseudo-element-no-unknown': [
  25. true,
  26. {
  27. ignorePseudoElements: ['v-deep']
  28. }
  29. ],
  30. 'number-leading-zero': 'never',
  31. 'no-descending-specificity': null,
  32. 'font-family-no-missing-generic-family-keyword': null,
  33. 'selector-type-no-unknown': null,
  34. 'at-rule-no-unknown': null,
  35. 'no-duplicate-selectors': null,
  36. 'no-empty-source': null,
  37. // 禁止空块
  38. 'block-no-empty': true,
  39. 'selector-pseudo-class-no-unknown': [
  40. true,
  41. { ignorePseudoClasses: ['global'] }
  42. ],
  43. 'max-nesting-depth': null,
  44. 'max-line-length': null,
  45. 'selector-max-compound-selectors': null,
  46. 'selector-no-qualifying-type': null,
  47. 'selector-class-pattern': null,
  48. 'function-parentheses-newline-inside': null,
  49. 'alpha-value-notation': 'number',
  50. // 禁止空第一行
  51. 'no-empty-first-line': true,
  52. 'order/properties-order': [
  53. 'position',
  54. 'top',
  55. 'right',
  56. 'bottom',
  57. 'left',
  58. 'z-index',
  59. 'display',
  60. 'flex-wrap',
  61. 'justify-content',
  62. 'align-items',
  63. 'float',
  64. 'clear',
  65. 'overflow',
  66. 'overflow-x',
  67. 'overflow-y',
  68. 'padding',
  69. 'padding-top',
  70. 'padding-right',
  71. 'padding-bottom',
  72. 'padding-left',
  73. 'margin',
  74. 'margin-top',
  75. 'margin-right',
  76. 'margin-bottom',
  77. 'margin-left',
  78. 'width',
  79. 'min-width',
  80. 'max-width',
  81. 'height',
  82. 'min-height',
  83. 'max-height',
  84. 'font-size',
  85. 'font-family',
  86. 'font-weight',
  87. 'text-justify',
  88. 'text-align',
  89. 'text-indent',
  90. 'text-overflow',
  91. 'text-decoration',
  92. 'white-space',
  93. 'color',
  94. 'background',
  95. 'background-position',
  96. 'background-repeat',
  97. 'background-size',
  98. 'background-color',
  99. 'background-clip',
  100. 'border',
  101. 'border-style',
  102. 'border-width',
  103. 'border-color',
  104. 'border-top-style',
  105. 'border-top-width',
  106. 'border-top-color',
  107. 'border-right-style',
  108. 'border-right-width',
  109. 'border-right-color',
  110. 'border-bottom-style',
  111. 'border-bottom-width',
  112. 'border-bottom-color',
  113. 'border-left-style',
  114. 'border-left-width',
  115. 'border-left-color',
  116. 'border-radius',
  117. 'opacity',
  118. 'filter',
  119. 'list-style',
  120. 'outline',
  121. 'visibility',
  122. 'box-shadow',
  123. 'text-shadow',
  124. 'resize',
  125. 'transition'
  126. ]
  127. }
  128. }

5.4、package.json添加stylelint脚本

  1. "scripts": {
  2. "stylelint:fix": "stylelint src/**/*.{html,vue,less} --fix"
  3. }

重启项目,执行npm run stylelint:fix,不符合规定的样式,会被自动修复,但个别需要自行修复

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/599870
推荐阅读
相关标签
  

闽ICP备14008679号