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 相关文章推荐
JS Array对象入门分析
Oct 30 Javascript
javascript中普通函数的使用介绍
Dec 19 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
分享20个提升网站界面体验的jQuery插件
Dec 15 Javascript
JavaScript处理解析JSON数据过程详解
Sep 11 Javascript
bootstrap组件之导航组件使用方法
Jan 19 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
js获取地址栏参数的两种方法
Jun 27 Javascript
教你5分钟学会用requirejs(必看篇)
Jul 25 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
微信小程序静默登录的实现代码
Jan 08 Javascript
antd design table更改某行数据的样式操作
Oct 31 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
React Native中TabBarIOS的简单使用方法示例
2017/10/13 Javascript
webpack打包js的方法
2018/03/12 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
跟老齐学Python之集合(set)
2014/09/24 Python
python实现通过shelve修改对象实例
2014/09/26 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
python调用百度API实现人脸识别
2020/11/17 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
国际商务系学生个人的自我评价
2013/11/26 职场文书
行政部主管岗位职责
2013/12/28 职场文书
2014中考励志标语
2014/06/05 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
比较几种Redis集群方案
2021/06/21 Redis
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server