说明:
- 前两部分涉及的知识可以很好的帮助我们检测和修复代码,但是这些操作是主动的,并且不是所有的错误代码都可以自动修复的;
- 依赖编辑器检测的缺陷在于,很可能会忽略掉部分错误而不自知,并且这并不影响编译开发;
- 那么,要保证提交到git库里的代码是完全符合 .eslintrc 设置的规范,就必须利用构建工具检测代码规范,排查错误。
这里使用 webpack,安装 eslint 相关依赖:
npm i -D eslint eslint-loader eslint-friendly-formatter
webpack多页面项目地址,可参考:
https://github.com/shiguang0116/webpack3-ejs-project
webpack.base.config.js文件配置:
const createLintingRule = () => ({
test: /\.(js)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src')],
options: {
formatter: require('eslint-friendly-formatter'), // 指定错误报告的格式规范
emitWarning: config.lintOnSave !== 'error' // true:在命令行和控制台输出警告,不会使得编译失败 | false:会强制 eslint-loader 将 lint 错误输出为编译错误,同时也意味着 lint 错误将会导致编译失败
}
})
// 在 module - rules 中加入如下代码
rules: [
...(config.lintOnSave ? [createLintingRule()] : []),
// 其他配置
]
config.js文件配置:
lintOnSave: 'error'
true
lintOnSave 为 true 时,lint 错误会在命令行和控制台输出警告,不会使得编译失败。如下:
'error'
lintOnSave 为 ‘error’ 时,会强制 eslint-loader 将 lint 错误输出为编译错误,同时也意味着 lint 错误将会导致编译失败。如下:
false
lintOnSave 为 false 时,lint 错误不会被检测
在 package.json 文件的 scripts 对象里加入如下代码,检查 src/ 目录下的所有 js文件:
"lint": "eslint --ext .js src"
eslint --ext
。以上可以看到,编辑器和构建工具都可以实现对代码的规范作用。在项目中具体应该怎么应用,下面是的几点说明:
1、编辑器+eslint插件:对错误的标识和修复提供了极大的便利,带来了飞一般的开发享受;
2、构建工具对eslint的配置:可以让开发人员在开发项目的过程中及时的意识到代码存在的问题,及时改正;
3、npm run lint 命令:可以最大效率的检测到整个项目的代码存在的问题,最大限度的保证了代码规范;
4、总结:其实我们在开发的时候利用(1)把好第一道关,利用(3)做提交代码之前的检测工作,就能很好的实现代码规范。至于(2),是这样的:
1、gulp 项目教程:之前有写过一个项目教程,里面用到了 gulp-uglify 检查 js 压缩时的语法错误。可参考:
gulp构建项目(七):gulp-uglify压缩js以及检查js语法错误
2、gulp-eslint:基于第五点的说明,本 gulp 项目就没有使用 gulp-eslint 。
3、npm run lint:创建此命令,在提交代码之前运行它以检查代码错误。
"lint": "eslint --ext .js src"
ESLint配置(一):eslint默认及自定义规则介绍,上传自己的eslint-config-*风格文件
ESLint配置(二):vscode配置eslint,实现错误代码标识以及自动修复
ESLint配置(三):构建工具(webpack、gulp)配置eslint