vue项目代码风格统一

  • 问题背景
  • 方案分析
    • 1、在package.json中增加prettier的依赖以及运行脚本
    • 2、修改.eslintrc.js,去除所有vue-cli自动生成的规范,自定义插件及规范
    • 3、添加.prettierrc.js,自定义prettier插件的配置
    • 4、修改JetBrains系列配置,保存时自动格式化eslint
  • 最佳实践

问题背景

现有业务项目中,开发人员使用的ide五花八门,既有Visual Studio Code、webstorm,也有idea、pycharm这种偏后端的ide;而且各自设置的code style也不一致,为了统一团队风格,减少后期代码维护量,决定进行整改。

方案分析

如果你用的是vscode,可以参照这里进行配置,此篇不再赘述。

现有主流的前端格式化工具是prettier,在vscode和idea中都有相应的插件:

鉴于笔者常用的开发工具是JetBrains系列,下面以idea为例,教你三招搞定配置

1、在package.json中增加prettier的依赖以及运行脚本

{"scripts": {"eslint": "eslint src --ext .js,.jsx,.vue","eslint:fix": "eslint src --ext .js,.jsx,.vue --fix"},"devDependencies": {"eslint-config-prettier": "^8.5.0"}
}

我们仅需要在本地及开发环境中配置prettier即可,所以加入该依赖到devDependencies,并且需要在scripts里加上"eslint:fix",让它作为eslint的一个插件,在保存代码时自动运行。

2、修改.eslintrc.js,去除所有vue-cli自动生成的规范,自定义插件及规范

主要是在插件中添加plugin:

extends: ['plugin:vue/vue3-essential', 'eslint:recommended', 'plugin:prettier/recommended']

鉴于vue自带的规范检查可能跟eslint有冲突,可以全部修改为eslint的,参考配置文件如下:

module.exports = {root: true,env: {browser: true,node: true,},extends: ['plugin:vue/vue3-essential', 'eslint:recommended', 'plugin:prettier/recommended'],parserOptions: {parser: 'babel-eslint',},rules: {'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off','no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',// WS003-前端开发规范-JavaScript-引用'prefer-const': ['warn',{destructuring: 'any',ignoreReadBeforeAssign: false,},],'no-const-assign': 'error','no-var': 'warn',// WS003-前端开发规范-JavaScript-对象'no-new-object': 'warn','object-shorthand': ['warn', 'always'],'no-prototype-builtins': 'error','no-array-constructor': 'warn',// WS003-前端开发规范-JavaScript-解构赋值'prefer-destructuring': 'off',// WS003-前端开发规范-JavaScript-字符串'prefer-template': 'warn','no-eval': 'error','no-useless-escape': 'off',"template-curly-spacing": "off",// WS003-前端开发规范-JavaScript-函数'no-new-func': 'error','space-before-function-paren': ['error',{anonymous: 'always',named: 'never',asyncArrow: 'always',},],'space-before-blocks': ['error', 'always'],'func-style': 'off','wrap-iife': ['error', 'inside'],'no-loop-func': 'error','no-param-reassign': 'error','prefer-spread': 'error',// WS003-前端开发规范-JavaScript-箭头函数'prefer-arrow-callback': 'error','arrow-spacing': 'error','arrow-body-style': ['error','as-needed',{ requireReturnForObjectLiteral: false },],// WS003-前端开发规范-JavaScript-类&构造函数'no-useless-constructor': 'error','no-dupe-class-members': 'error',// WS003-前端开发规范-JavaScript-模块'no-duplicate-imports': 'error','no-iterator': 'error',// WS003-前端开发规范-JavaScript-变量声明'no-undef': 'error','no-unused-vars': 'error',// WS003-前端开发规范-JavaScript-比较运算符&相等eqeqeq: 'off',},
};

3、添加.prettierrc.js,自定义prettier插件的配置

以下配置仅供参考:

module.exports = {printWidth: 80,tabWidth: 2,useTabs: false,semi: false,singleQuote: true,quoteProps: 'as-needed',jsxSingleQuote: false,trailingComma: 'none',bracketSpacing: true,jsxBracketSameLine: true,arrowParens: 'avoid',endOfLine: 'auto',
};

4、修改JetBrains系列配置,保存时自动格式化eslint

打开settings,按图示修改一下eslint配置:


然后修改一下actions on save,确保只勾选图示两个框,避免idea自带格式化和eslint格式化冲突:

最后,按CTRL+k,打开commit code时的设置;

确保不要勾选下面三个按钮:

最佳实践

1、如果你用的是vscode,可以参照这里进行配置,此篇不再赘述。

2、如果你用的是JetBrains系列,可以参照上面的步骤。

vue项目代码格式不统一怎么办?一招教你解决相关推荐

  1. 服务器上部署前端Vue项目代码

    服务器上部署前端Vue项目代码 本人自己感觉部署前端代码比部署后端难,主要是我在部署的过程中遇到了各种报错

  2. vue项目Error: Cannot find module ‘xxx’类报错的解决方法

    现发现只要是报错 Error: Cannot find module 'xxx'(例如 Error: Cannot find module 'webpack')这类的问题都可以用下面的方法解决. 报错 ...

  3. ESLint+Prettier+Vetur 统一Vue项目代码风格

    前言 一.为什么要整合Eslint和Prettier? 1.对比Prettier和Linters(eslint/tslint/stylelint) Linters有两类规则: 格式化规则:如最大长度, ...

  4. vue关闭代码格式校验

    eslint eslint是一个JavaScript的校验插件 通常用来校验语法或代码的书写风格 有了eslint的检查 代码中的缩进 空格 空白行之类的都会被按照规范检查 但有时我们不希望开启代码校 ...

  5. 将Vue项目代码打包成桌面应用

    参考 electron 官网 第一步: 安装Vue脚手架Vue CLI只能用最新版,建议在用官网最新命令行 npm install -g @vue/cli 第二步: 创建vue项目 vue creat ...

  6. vue项目访问服务器时:WebSocket connection to ‘wss://XXXX/‘的解决方法

    关于WebSocke的介绍:新手入门:websocket 简单来说,WebSocket 为web应用程序客户端和服务端之间(客户端服务端)提供了一种全双工通信机制,报错是因为发送报文的过程出现问题. ...

  7. vue项目关闭eslint检查,vue关闭代码格式校验

    本人录制的视频Vue全套学习学习视频:B站 小胖梅-的个人空间_哔哩哔哩_Bilibili eslint是一个JavaScript的校验插件,通常用来校验语法或代码的书写风格. 关闭eslint检查 ...

  8. vue项目 - svg格式的icon图标无法显示颜色

    前言 在项目中遇到svg格式的icon图标无法显示颜色,这个问题.尝试过很多方法,最后发现不是代码的问题,而是iconfont图标库中没有配置好. 1. 发现问题如下 当点击菜单选项时,icon和文字 ...

  9. Vue项目代码改进(三)—— Cookie、LocalStorage和SessionStorage的使用

    存在问题: 如果在退出页面时,没有点击"退出"按钮,而是直接关闭页面,token并没有被清除,依然能通过访问http://localhost:8080/#/ 直接进入主页. 原因: ...

最新文章

  1. 极限编程 (Extreme Programming) 和用户故事 (User Stories) 的关系
  2. 浅谈RPA 在银行领域的十个场景应用
  3. MailBee.NET Objects撰写邮件教程(一):添加和删除自定义标题
  4. asm 查看 数据文件 修改 时间_更高效的GMX分段模拟方法:修改tpr文件
  5. linux编辑文本文件aa的命令,linux入门必须掌握的命令--文本文件编辑
  6. mysql 值到99999后不增值了_Mysql 增加新数据,若存在则更新的问题
  7. Enterprise Library: Configuration Application Block类设计分析篇
  8. VTK:可视化之AlphaFrequency
  9. linux的apache安装在哪个目录,在linux系统下apache的默认安装路径在哪
  10. php explore im,浏栏器-explore.class.php
  11. 使用.NET为Window Mobile写自动化工具的无奈之处.
  12. 用汇编的眼光看c++(之模板函数)
  13. 战旗html5播放器为什么卡顿,视频站启用html5播放器
  14. 前端英文首字母转大写
  15. photoshop--色彩管理
  16. HBuilder 使用教程
  17. Navicat连接mysql报错2509
  18. HTML转义字符、Javascript转义字符、HTML特殊字符对照表
  19. 折弯机使用说明书_折弯机基本操作说明
  20. 无线网卡+kali实现wifi暴力破解(密码爆破方式)

热门文章

  1. 使用Mosquitto软件测试mqtt功能
  2. mosquitto -- 权限配置
  3. 我把1688当兼职副业,月入5W
  4. 复数和四元数的几何意义
  5. libcurl.lib 导入问题 须知
  6. 计算小分子之间的RMSD
  7. 任务3-1(JavaScript基础)
  8. 区块链投资人李明轩:区块链通过多中心化机制解决传统互联网问题|筱静观察
  9. 用js实现网页中小广告弹出
  10. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(十四)自动刷题