,我们肯定不希望手动一个个去修改,所以我们需要使用 eslint 的自动修复的功能,它能够帮助我们修复绝大数的错误,还有一些修复不了的我们再手动修复就可以了 这里写出了部分代码,更多细节可以在项目里面看...当然我们执行 webpack-box lint eslint 命令时可以去修复一些错误,但是当我们写代码时希望编译器能够帮助我们自动修改,而不是等到代码写完了才去校验,这样会给我们带来二次麻烦,甚至会出现修复不了的问题...您安装了 eslint 插件后,需要在设置中设置 "eslint.autoFixOnSave": true,这样就可以在保存时自动修复 eslint 的错误了 当然您可能只在这个项目中使用了 eslint...webpack 给我们提供了一个插件 EnvironmentPlugin,这个插件可以将我们在 node 端定义的变量,在编译时将值编译到代码中,举个例子 我们在 main.js 中写了一段 node...配置 * @param autoFixOnSave 保存时自动修复 * @param validate 在vue中添加错误提示 */ "eslint.alwaysShowStatus
其次关于eslint:recommended在阅读过大多数的开源项目后可以发现绝大部分并没有使用官方内置的这一规则,大多数作者都会选择airbnb团队的规范,秉着借鉴和学习的思路,我觉得团队中可以学习这一看法...,替换成airbnb,然后我们重新检测文件 不出意外,这个时候我们发现了一点错误,提示我们缺少eslint-plugin-jsx-a11y,很明显这是React的jsx文件,在vue项目中我们并不需要,...引入文件时出现路径和无效导出等问题的包。...eslint-import-resolver-webpack: 可以借助webpack的配置来辅助eslint解析,最有用的就是alias,从而避免unresolved的错误 eslint-import-resolver-typescript...所以你可以使用eslint-config-prettier禁用掉所有的格式化相关的规则(如果其他有效的Eslint规则与prettier在代码如何格式化的问题上不一致的时候,报错是在所难免的了) @typescript-eslint
之前翻译过一篇 前端工程化发展历史 的文章,Webpack、Babel 、Eslint 现在基本上就是前端项目的标配了。 但工作以后一般很少接触这些配置,都是在前人配置好的基础上去写业务代码。...npm i -D @babel/core babel-loader 然后在 webpack 中引入 babel-loader ,用来对 js 进行转换,更改 webpack.config.js 文件。...@babel/preset-env 包含了许多 ES 的新特性,core-js 实现 ployfill,通过这两个 babel 各种 ES 最新的特性就都可以放心使用了,如果有不满足的我们可以单独配置..." ], "rules": { } }; 然后我们在 package.json 中可以添加一个 lint 命令来修复代码。...配合 Vscode 我们也可以做到边写代码边自动检测 eslint,以及保存的时候自动修复 eslint 相关错误。
ESLint简介 ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。...如果每次在代码提交之前都进行一次eslint代码检查,就不会因为某个字段未定义为undefined或null这样的错误而导致服务崩溃,可以有效的控制项目代码的质量。...在许多方面,它和 JSLint、JSHint 相似,除了少数的例外: ESLint 使用 Espree 解析 JavaScript。 ESLint 使用 AST 去分析代码中的模式。...Globals:执行代码时脚步需要访问的额外全局变量。 Rules:开启某些规则,也可以设置规则的等级。 检测规则 接下来,可以在配置文件中设置一些规则。...在报这么多的错误之后,如果我们一条一条地去修复,就会变的非常的麻烦,相信刚接触ESLint的童鞋都深有体会。其实这些错误都可以让ESLint帮助我们自动地修复。
这里我们主要是介绍一下 eslint 是如何进行配置和使用的。...rules 启用的规则及其各自的错误级别,会合并 extends 中的同名规则,定义冲突时优先级更高。...rules 和 extends 中定义的规则,并不都在 eslint 内部中有实现。...比如 extends 中的plugin:react/recommended,其中定义了规则开关和等级,但是这些规则如何生效的逻辑是在其对应的插件 ‘react’ 中实现的。 3....我们常用 husky 和 lint-staged 来进行代码提交时的 eslint 校验: // package.json "husky": { "hooks": { "pre-commit
ESLint 和 StyleLint 工具提供了自动修复功能,可以修复简单的错误如少了分号,多了空格,缩进不正确等 但要注意的是,自动修复某些时候可能会使代码发生逻辑或语法错误,需谨慎使用(自动修复后一定一定一定记得比对代码...安装 ESLint-Formatter 以支持自动修复检查的错误 ? 新增一个构建任务,可命名为,StyleLint-Fix.sublime-build 以支持自动修复检查的错误 ?...Show All Errors,在底部显示错误列表 ? 使用 ESlint-formatter进行自动修复JS ?...在webpack中的配置 参考我的webpack项目配置DEMO, 在 webpack.config.js 中传入相应的参数 ? 正式使用时autoFix会按需设置,建议修复。...如果选择修复,webpack将按模块的设置进行批量修复,可能会有大量文件被修改,所以需要做好代码比对工作 另外,开启自动修复可能会导致webpack编译无限循环的问题,对于这个我们可以引入一个新的插件
代码检查是一种静态的分析,常用于寻找有问题的模式或者代码,并且不依赖于具体的编码风格。 ESLint 可以让程序员在编码的过程中发现问题而不是在执行的过程中。...“rules”: {}, "settings": { // 使用webpack中配置的resolve路径 "import/resolver": "webpack" }...对于webpack编译时的自动修复,可以如下配置: { loader: 'eslint-loader', options: { fix: true } } 四....": true, 在左侧栏扩展中安装 ESLint和 Vetur插件 ?...左侧会显示语法错误数和是否修改了此文件, 右侧会波浪线显示语法错误的地方。 有时会遇到保存一次修复不完全的情况,多保存几次即可修复大部分语法。对于敲一会代码保存一下的可以不用担心这个问题。
js 类型系统 最近纠结一个问题,前端的 js 由于其动态的特性,写几行代码,在浏览器刷新一下就能看到结果了,非常适合快速开发和迭代。...但随着代码的规模越来越大,到了后期就会变得难以维护,任何的改动都有可能引入新的 bug,js 工程师需要花费越来越多的时间来调试修复各种 bug。...造成这样结果的原因有多样,而其中之一的原因,是由于 js 缺乏类型系统,导致我们无法通过工具来在开发的过程中检测到那些可能会发生的错误,也无法通过具体的类型定义来约束别人如何调用自己写的代码库。...flow 通过自动推断 js 代码中各个变量的类型,来约束代码的行为,举个例子,在 js 中对两个变量进行相加,在不同情况下会得到不一样的结果: let strA = "hello "; let strB...这里我采用的 webpack babel 作为我们构建环境,所以首先我们需要安装 webpack 和 babel $npm install webpack babel-core babel-loader
弃用 Node.js / CommonJS 特定的规则 因此,以下规则将在 core 中被弃用: 在 core 中管理规则是正在进行的 ESLint 维护的重要组成部分。...随着项目的发展,我们维护的规则数量也在增加。我们检查了所有当前规则,并确定特定于 Node.js / CommonJS 的规则没有必要包含在未来的 core 中。...指令注释中的描述 指令注释描述允许你给自己和其他开发人员留下关于为什么要包含注释的说明。...这没有多大意义,并且会给用户带来混乱和意外行为。在 v7.0.0 中,配置文件和忽略使用 --config 或 --ignore-path 传递的文件使用当前工作目录作为它们的基本路径。...自动修复程序规则必须测试其修复程序的输出。 现在测试代码存在语法错误的地方将失败。 如果测试规范包含未知属性,则测试失败。
Preload/Prefetch:可以在浏览器空闲时间进行加载资源NetworkCache:对请求的资源进行缓存PWA:离线时仍可以访问项目⭐都是要配置非常多的内容,我认为这个章节不需要看如何配置,只需要过一遍概念与优化思路...此时如果代码运行出错那么提示代码错误位置我们是看不懂的。一旦将来开发代码文件很多,那么很难去发现错误出现在哪里。所以我们需要更加准确的错误提示,来帮助我们更好的开发代码。...是什么SourceMap(源代码映射)是一个用来生成源代码与构建后代码一一映射的文件的方案。它会生成一个 xxx.map 文件,里面包含源代码和构建后代码每一行、每一列的映射关系。...Cache为什么每次打包时 js 文件都要经过 Eslint 检查 和 Babel 编译,速度比较慢。我们可以缓存之前的 Eslint 检查 和 Babel 编译结果,这样第二次打包时速度就会更快了。...和代码进行了优化:1.提升开发体验使用 Source Map 让开发或上线时代码报错能有更加准确的错误提示。
但下面两步依然很棘手,先给出我的结论: 如何确定步骤 1 中变量在本文件内部没有用到(作用域分析)?...ESLint 会 重复执行 fix 函数,直到不再有新的可修复错误为止。 为什么要 fork 下来改写它?...如何删除变量 当我们在 IDE 中编写代码时,有时会发现保存之后一些 ESLint 飘红的部分被自动修复了,但另一部分却没有反应。这其实是 ESLint 的 rule fixer 的作用。...无用文件删除 之前基于 webpack-deadcode-plugin[10] 做了一版无用代码删除,但是在实际使用的过程中,发现一些问题。.../type.ts"; // use IProps 在使用旧版的 fork-ts-checker-webpack-plugin 时,如果此时改动了 IProps 造成了类型错误,是不会触发 webpack
1.代码格式规范相关 eslint:代码格式校验 prettier:prettier 主要是为了格式化代码,而在没有 prettier 之前,是用 eslint —fix和 编辑器自带代码格式来进行代码格式化的...stylelint:css样式格式校验 2.代码提交规范相关 lint-staged:一个在git暂存文件上运行linters的工具,检查本次修改更新的代码,并自动修复并且可以添加到暂存区 husky:...将其安装到所在仓库的过程中它会自动在 .git/ 目录下增加相应的钩子实现对应的功能,这里我们通过使用husky来监测commit-msg钩子,完成提交信息校验,监测 pre-commit 钩子,完成代码校验...pre-commit:git hooks的钩子,在代码提交前检查代码是否符合规范,不符合规范将不可被提交 commit-msg:git hooks的钩子,在代码提交前检查commit信息是否符合规范 commitizen...2.关于 eslint-plugin-prettier 和 eslint-config-prettier 的配置 eslint-plugin-prettier 作用:一个形式上跟standard类似的一个代码规则
,统一规范团队协作中每位同事的代码编写风格,减少代码冗余,在保证代码语法正确的前提下提高代码的可读性 CSS校验:内置stylelint,配置标准的CSS语法规则,检查和纠正出现的语法错误 JS校验:内置...细节 IDE相关 推荐使用VSCode开发项目,以下配置也是基于VSCode驱动 若启用Stylelint或Eslint,需在IDE上安装Stylelint插件和Eslint插件才能配合本项目校验代码并高亮显示警告和错误...RUN_ENV用于获取当前运行环境,在使用Eslint会报语法错误,在代码后面追加// eslint-disable-line即可 dev:开发环境 test:测试环境 prod:生产环境 文件导入快捷方式...开发时无需关注如何写好构建代码和使用何种工具扩展构建功能,只需专注于业务代码的编写,整个项目只存在业务代码,可通过配置文件修改默认构建配置,大大缩减项目前期的准备工作,保证项目的「简洁性」、「独立性」、...由于自己项目开发经验和技术积累有限,不能保证本项目不存在任何Bug,若在后续使用本项目时发现Bug或产生疑问,可随时在Issues上提出你的宝贵建议,笔者会立马反馈和修复相关Bug。
阅读完这篇文章,你可以收获: 能够自己亲手写出一套 ESLint 配置; 会知道业界都有哪些著名的 JS 代码规范,熟读它们可以让你写出更规范的代码; vue-cli 在初始化一个包含代码校验的项目时都做了什么...参考:ESLint配置文件.eslintrc参数说明[11] 针对个别文件设置新的检查规则 比如 webpack 的中包含了某些运行时的 JS 文件,而这些文件是只跑在浏览器端的,所以需要针对这部分文件进行差异化配置...在 VSCode 中支持 ESLint 前面做的配置,都需要执行命令才能进行检查和修复代码,还是挺不方便的,如果我希望编辑完或者保存的时候去检查代码该如何做呢?...在提交前做校验 pre-commit 以上只是通过 ESLint 自动修复能够修复的错误以及通过 Prettier 进行代码的格式化,但是在实际开发的时候难免会遇到无法 fix 的错误,可能开发人员也忘记修改...首先用 ESLint 来做代码校验,它自带的 ruels 能提供 2 种类型的校验,分别是代码错误校验和代码格式校验,而 ESLint 本身的核心工作其实就是校验和修复错误的代码,而对格式化的规则提供的不多
它可以帮助捕获 JavaScript 开发中的常见错误,而不需要额外地修改原有的代码,比如静态类型转换,空值引用等问题。...同时,Flow 为 JavaScript 添加了静态类型的语法标识,这样开发者便可以明确代码中的类型,让其自动地被 Flow 所维护。...安装 Webpack 初始化 npm,然后在本地安装 webpack 和 webpack-cli(此工具用于在命令行中运行 webpack): npm install webpack webpack-cli...和 @babel/preset-env 两个模块,其中 @babel/core 是 Babel 的核心存在,Babel 的核心 api 都在这个模块里面,比如:transform。...babel-plugin-transform-class-properties:添加对类属性和静态方法的支持 eslint-plugin-flowtype-errors:将 Flow 错误通过 ESlint
描述 文中相关的代码都在https://github.com/WindrunnerMax/webpack-simple-environment中的webpack--vue-cli分支中。...94210d2fc63940b37c8d> webpack-dev-server 平时开发项目,预览效果时,一般直接访问某个ip 和端口进行调试的,webpack-dev-server...搭建Vue基础环境 首先我们可以尝试一下对于.js中编写的Vue组件进行构建,即不考虑单文件组件.vue文件的加载,只是构建一个Vue对象的实例,为了保持演示的代码尽量完整,此时我们在src下建立一个main.js...出来作为之后编写代码的主入口,当然我们还需要在index.js中引入main.js,也就是说此时代码的名义上的入口是main.js并且代码也是在此处编写,实际对于webpack来说入口是index.js...检查有错误自动修复,无法修复则无法执行git add。
ESLint 会 重复执行 fix 函数,直到不再有新的可修复错误为止。 为什么要 fork 下来改写它?...如何删除变量 当我们在 IDE 中编写代码时,有时会发现保存之后一些 ESLint 飘红的部分被自动修复了,但另一部分却没有反应。 这其实是 ESLint 的 rule fixer 的作用。...参考官方文档的 Apply Fixer 章节,每个 ESLint Rule 的编写者都可以决定自己的这条规则 是否可以自动修复,以及如何修复。...无用文件删除 之前基于 webpack-deadcode-plugin 做了一版无用代码删除,但是在实际使用的过程中,发现一些问题。.../type.ts"; // use IProps 在使用旧版的 fork-ts-checker-webpack-plugin 时,如果此时改动了 IProps 造成了类型错误,是不会触发 webpack
首先安装 yarn add svg-sprite-loader -D 把 webpack.config.js 翻译成 Vue.config.js 这个库给的示例代码是 webpack.config.js...但是我们现在在用的是 Vue 官方的代码是这样的 // webpack >= 2 { test: /\.svg$/, loader: 'svg-sprite-loader', options...我们可以使用一个叫做 svgo-loader 的插件来解决此问题 不知道是什么原因,高版本的这个插件会导致加载不出 svg 的 bug,我使用的是以下版本,是正常使用的 // 和上文提到的一样 {...版本会有 bug // 故推荐使用高版本的,最新版已经修复了 bug,推荐使用 ^6.0.11 "svgo-loader": "^2.2.1", // 即此版本可正常使用...错误怎么办?
一般来说,我们项目在前期没有加入ESLint的时候,后期我们加入了之后跑一下,基本上都会出现非常的多报错,一执行检查就是满屏的error和warning,简直是丧心病狂不堪入目~ 如何让ESLint自动修复报错...,提高开发效率 在报这么多的错误之后,如果我们一条一条地去修复,就会变的非常的麻烦,相信刚接触ESLint的童鞋都深有体会。...怎么在项目中预处理错误,eslint-loader来帮忙 我希望在项目开发的过程当中,每次修改代码,它都能够自动进行ESLint的检查。...因为在我们改代码的过程中去做一次检查,如果有错误,我们就能够很快地去定位到这个问题,由于是我们刚刚改过的,因此立马把它修复掉就OK了。...所以一般来说,我们用webpack和babel来进行开发的项目,都会指定它的parser使用babel-eslint。
Vue2+VueRouter2+webpack 构建项目实战(三)配置路由,整俩页面先 2017年8月补充 2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查...我们在src/page目录下面新建两个文件,分别是index.vue和content.vue 代码分别是 //index.vue index </template...没关系,其中大部分错误都是格式造成的,并不是很重要的错误,但是这样的提示很不爽。因此,我们把检查错误插件eslint给关闭掉。...打开根目录下面的/build/webpack.base.conf.js文件,找到如下代码: preLoaders: [ { test: /\.vue$/, loader: 'eslint...可能是我写的代码不太标准,因此在跑起来的时候不能通过校验,必须把校验关闭掉才能跑起来。如果你知道我的代码有什么问题,欢迎留言给我,让我修复我的问题。
领取专属 10元无门槛券
手把手带您无忧上云