vue单文件组件lint error自动fix与styleLint报错自动fix详解


Posted in Javascript onJanuary 08, 2019

问题描述

之前用Vue(多入口打包成多页)的项目,要修改迁移并修改为一个单页应用,且使用Vue脚手架生成项目,要对js,vue,css文件的代码做lint,在修改Webpack配置后第一次跑lint居然报了几万个Error,且是在eslint加了--fix选项的情况下,且错误大多集中在顺序问题上也就是vue/order-in-components和order/properties-order的错误.以下是问题的解决方式及过程记录.

stylelint中css属性顺序错误

.stylelint的配置

// .stylelint
{ 
 "processors": ["@mapbox/stylelint-processor-arbitrary-tags"],
 "plugins": [
 "stylelint-order",
 "stylelint-scss"
 ],
 "extends": ["css-properties-sorting"],
 "rules": {
 "order/order": [
  "custom-properties",
  "declarations"
 ],
 "color-no-invalid-hex": true,
 "unit-no-unknown": true,
 "property-no-unknown": true,
 "selector-pseudo-class-no-unknown": true,
 "selector-pseudo-element-no-unknown": true,
 "comment-no-empty": true,
 "number-leading-zero": "always",
 "number-no-trailing-zeros": true,
 "declaration-colon-space-after": "always",
 "declaration-colon-space-before": "never"
 }
}

在stylelint中加上--fix选项后,自动修复会把Vue文件中所有内容都移除掉,只剩css代码

首先在stylelint的issue中发现了这样的一个issue,基本现象一样,问题是出现在配置中的processors项

移除配置中的processors后,发现stylelint检测了各种文件(包括js/png等),执行lint的命令为: stylelint **/*.{vue,css,scss} --fix

添加.stylelintignore文件,里面忽略不用lint的文件后缀,最后完美解决css(包括scss/vue文件style标签)中属性顺序错误自动修复问题

// .stylelintignore
*.js
*.png
*.eot
*.ttf
*.woff

eslint时vue文件中属性顺序错误

eslint-plugin-vue版本: 4.0.0

.eslintrc.js配置文件

module.exports = {
 root: true,
 parserOptions: {
 parser: 'babel-eslint'
 },
 env: {
 browser: true
 },
 extends: [
 'plugin:vue/recommended',
 'standard'
 ],
 plugins: ['vue'],
 rules: {
 'generator-star-spacing': 'off',
 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
 'semi': 0,
 'indent': 0,
 'no-unused-vars': 0
 }
};

首先在eslint-plugin-vue的文档中发现vue/order-in-componentsrule是支持自动修复的,然后去翻看了issue,发现这个issue中提到这个error不能自动修复的问题已经提了PR且merge了,于是果断更新eslint-plugin-vue到最新版本(4.3.0)完美解决问题(ps:升级后又出现了个vue/attributes-order的错误,且文档说不能自动修复,于是果断ignore).

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
基于JQuery的密码强度验证代码
Mar 01 Javascript
jquery获取一个元素下面相同子元素的个数代码
Jul 31 Javascript
javascript表格的渲染组件
Jul 03 Javascript
js实现贪吃蛇小游戏(容易理解)
Jan 22 Javascript
angularjs中回车键触发某一事件的方法
Apr 24 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
jQuery中的for循环var与let的区别
Apr 21 jQuery
js删除对象/数组中null、undefined、空对象及空数组方法示例
Nov 14 Javascript
微信小程序解析富文本过程详解
Jul 13 Javascript
layui 表单标签的校验方法
Sep 04 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 Javascript
说说如何在Vue.js中实现数字输入组件的方法
Jan 08 #Javascript
小试SVG之新手小白入门教程
Jan 08 #Javascript
vue组件通信传值操作示例
Jan 08 #Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
Jan 08 #Javascript
vuejs简单验证码功能完整示例
Jan 08 #Javascript
详解React中合并单元格的正确写法
Jan 08 #Javascript
JS简单判断是否在微信浏览器打开的方法示例
Jan 08 #Javascript
You might like
php中cookie的使用方法
2014/03/29 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
Python实现扫码工具的示例代码
2020/10/09 Python
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
优秀老师事迹材料
2014/02/05 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
节约用水的口号
2014/06/20 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
股东大会通知
2015/04/24 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android