HBuilderX代码校验及代码格式化
2021-04-12 本文已影响0人
海之深处爱之港湾
一、添加 EditorConfig 代码风格统一工具
EditorConfig 有助于维护跨多个编辑器和 IDE 从事同一项目的多个开发人员的一致编码风格,团队必备神器。
在项目根目录创建.editorconfig并加入以下内容
.editorconfig
# http://editorconfig.org
# 告诉EditorConfig插件,这是根文件,不用继续往上查找
root = true
# 匹配全部文件
[*]
# 结尾换行符,可选"lf"、"cr"、"crlf"
end_of_line = lf
# 在文件结尾插入新行
insert_final_newline = true
# 删除一行中的前后空格
trim_trailing_whitespace = true
# 匹配js和py结尾的文件
[*.{js,py}]
# 设置字符集
charset = utf-8
# 匹配py结尾的文件
[*.py]
# 缩进风格,可选"space"、"tab"
indent_style = space
# 缩进的空格数
indent_size = 2
# 以下匹配,类同
[Makefile]
indent_style = tab
# tab的宽度
tab_width = 4
# 以下匹配,类同
[lib/**.js]
indent_style = space
indent_size = 2
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2
二、安装eslint-plugin-vue插件,vue语法校验
-
DCLOUD插件市场搜索eslint-plugin-vue,使用HBuilderX导入
image.png
-
配置步骤:
image.png
-
.eslintrc.js
//更详细的配置文档请参考:https://github.com/vuejs/eslint-plugin-vue#gear-configs
module.exports = {
"extends": "plugin:vue/base",
parserOptions: {
ecmaVersion: 2017,
sourceType: 'module'
},
'settings': {
'html/html-extensions': [
".erb",
".handlebars",
".hbs",
".htm",
".html",
".mustache",
".nunjucks",
".php",
".tag",
".twig",
".wxml",
".we",
]
},
"rules": {
//在computed properties中禁用异步actions
'vue/no-async-in-computed-properties': 'error',
//不允许重复的keys
'vue/no-dupe-keys': 'error',
//不允许重复的attributes
'vue/no-duplicate-attributes': 'warn',
//在 <template> 标签下不允许解析错误
'vue/no-parsing-error': ['error', {
'x-invalid-end-tag': false,
}],
//不允许覆盖保留关键字
'vue/no-reserved-keys': 'error',
//强制data必须是一个带返回值的函数
// 'vue/no-shared-component-data': 'error',
//不允许在computed properties中出现副作用。
'vue/no-side-effects-in-computed-properties': 'error',
//<template>不允许key属性
'vue/no-template-key': 'warn',
//在 <textarea> 中不允许mustaches
'vue/no-textarea-mustache': 'error',
//不允许在v-for或者范围内的属性出现未使用的变量定义
'vue/no-unused-vars': 'warn',
//<component>标签需要v-bind:is属性
'vue/require-component-is': 'error',
// render 函数必须有一个返回值
'vue/require-render-return': 'error',
//保证 v-bind:key 和 v-for 指令成对出现
'vue/require-v-for-key': 'error',
// 检查默认的prop值是否有效
'vue/require-valid-default-prop': 'error',
// 保证computed属性中有return语句
'vue/return-in-computed-property': 'error',
// 强制校验 template 根节点
'vue/valid-template-root': 'error',
// 强制校验 v-bind 指令
'vue/valid-v-bind': 'error',
// 强制校验 v-cloak 指令
'vue/valid-v-cloak': 'error',
// 强制校验 v-else-if 指令
'vue/valid-v-else-if': 'error',
// 强制校验 v-else 指令
'vue/valid-v-else': 'error',
// 强制校验 v-for 指令
'vue/valid-v-for': 'error',
// 强制校验 v-html 指令
'vue/valid-v-html': 'error',
// 强制校验 v-if 指令
'vue/valid-v-if': 'error',
// 强制校验 v-model 指令
'vue/valid-v-model': 'error',
// 强制校验 v-on 指令
'vue/valid-v-on': 'error',
// 强制校验 v-once 指令
'vue/valid-v-once': 'error',
// 强制校验 v-pre 指令
'vue/valid-v-pre': 'error',
// 强制校验 v-show 指令
'vue/valid-v-show': 'error',
// 强制校验 v-text 指令
'vue/valid-v-text': 'error',
'vue/comment-directive': 0,
'camelcase': 2, //强制驼峰法命名,
'indent': [2, 4], //缩进风格
'id-match': 0, //命名检测
'init-declarations': 1, //声明时必须赋初值
'no-undef': 1, //不能有未定义的变量
'no-multi-spaces': 'error', // 禁止多个空格
'semi': [2, 'never'], // 自动补充分号 "always" (默认值)在语句结尾处需要分号; "never" 不允许分号作为语句的末尾
'quotes': ['error', 'single'] // 使用单引号
}
};
三、安装eslint-js插件
-
DCLOUD插件市场搜索eslint-js,使用HBuilderX导入
image.png -
配置步骤:
image.png - .eslintrc.js
//详细配置教程请参考:http://eslint.cn/docs/user-guide/configuring
module.exports = {
"plugins": [
"html"
],
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
},
"allowImportExportEverywhere": false
},
"rules": {
'camelcase': 2, //强制驼峰法命名,
'indent': [2, 4], //缩进风格
'id-match': 0, //命名检测
'init-declarations': 1, //声明时必须赋初值
'no-undef': 1, //不能有未定义的变量
'no-multi-spaces': 'error', // 禁止多个空格
'semi': [2, 'never'], // 自动补充分号 "always" (默认值)在语句结尾处需要分号; "never" 不允许分号作为语句的末尾
'quotes': ['error', 'single'] // 使用单引号
}
};
四、安装 stylelint插件,css、less、sass语法校验
-
DCLOUD插件市场搜索stylelint,使用HBuilderX导入
image.png -
配置步骤:
image.png - .stylelintrc.js
module.exports = {
"extends": "stylelint-config-recommended",
"rules": {
"unit-no-unknown": false,
"indentation": "tab", //缩进
"unit-no-unknown": true, //禁止未知单位
"color-hex-case": [
"lower", {
"message": "Lowercase letters are easier to distinguish from numbers"
}
],
"max-empty-lines": 2,
"unit-whitelist": ["em", "rem", "%", "s", "px", "upx", "rpx"],
"number-leading-zero": null
},
// 忽略其他文件,只校验样式相关的文件
ignoreFiles: [
"node_modules/**/*",
"public/**/*",
"dist/**/*",
"**/*.js",
"**/*.jsx",
"**/*.tsx",
"**/*.ts",
],
}
五、代码格式化快捷键
为了代码整齐便于阅读,写完代码随时进行格式化
windows:ctrl+k,
Mac: command+k