前端语法错误引发线上问题的思考 - 前端工程化之自动化语法检测

一个不起眼的拼写错误引发的bug(例子):

errorDemo

你是否注意到上图错误在哪了吗?test(tets)傻傻分不清楚!
日常搬砖时这种不经意的小问题可能随时都存在,毕竟谁都会手抖,但是怎么能避免因为这种相对不好控制的因素导致的问题呢❓

怎么避免同类问题:

  1. 自己控制:每次写完代码从头到尾仔细检查一遍 (建议指数:🌟,自行检测一遍整体语法成本太高)

  2. review控制:团队其他成员帮忙CodeReview (建议指数:🌟🌟🌟,当然可以就是相对效率太低了~)

  3. 自动化语法检验 在研发/提交代码时自动校验 控制 (建议指数:🌟🌟🌟🌟🌟,完美! 🙌)

自动化语法检测简述以及意义:

自动化语法检测可以帮助开发者识别和修复代码中的问题。它最主要的目的是通过检测代码风格的一致性和潜在错误来提高代码的可维护性和可读性。

  1. 保持代码风格一致性:不同开发者可能有不同的编码风格,但自动化语法检测可以通过预设的规则强制执行一致的风格。
  2. 减少bug:自动化检测可以帮助识别潜在的bug和潜在问题,例如未使用的变量、不一致的括号使用等。
  3. 提高代码可维护性:一致的代码风格可以提高代码的可读性和可维护性。

前端工程化中添加语法校验并一步步优化:

JS语法校验:

常用的JS语法校验使用ESlint处理。ESlint官网传送门
ESlint: 一个插件化的javascript代码检测工具。

安装走一波:

vue add @vue/eslint 生成eslintrc.js/json文件,随后配置对应校验规则即可校验,此处就不展开了呀。

针对开头我们举的栗子🌰,来添加ESLint校验,并运行:

命令行使用lint检查提示:
errorDemo
lint检查结果:
errorDemo

我们看,效果很明显,经过lint的检验,告诉我们代码块的问题和行数,一目了然,直接在对应处修改即可,完美!但是真的完美了吗?

工程化中单独使用ESlint缺点(校验时机):

需要自行手动调用eslint命令去 校验 ( npm run lint )。当然配合打包工具插件(webpack,vite)可以做到边开发边监测问题,那其实工具帮我们处理了自动化的步骤,所以我们还得了解到底是怎么优化的~

🙌 工程化中第一次优化(Git Hooks):

优化自动调用ESLint的时机:git commit
git web 给我们提供了一些钩子hooks,可以帮忙我们在和git交互前拦截并做一些操作。包含一下10种:

在这里插入图片描述
这里我们拿pre_commit钩子举例:pre_commit是git提交前处理的钩子函数,可以添加适合自己的自动化流程。

工程化中使用:在项目中 .git/hook/ 目录中 添加pre-commit.sh 脚本,然后在脚本中执行 eslint + 要校验的文件路径

缺点:每次都需要自行手动执行脚本,效率低,无法自行处理!

🙌 工程化中第二次优化(husky):

Husky 是一个用于设置 Git hooks(钩子)的工具,它允许开发者在 Git 操作前或者后执行自定义的脚本。这些脚本可以用来执行各种任务,比如代码格式化、代码质量检查、单元测试等,从而帮助团队保持一致的代码质量和开发流程。

---- 说干就干,直接使用一波:
npx husky add .husky/pre-commit “npm test” 就添加了一个pre-commit的脚本,然后husky就能在commit提交时使用我们添加的hook处理逻辑了。

缺点:只是在提交时拦截并调用eslint验证所有文件,不能只针对 本次git提交 的处理。

🙌 工程化中第三次优化(lint-staged):

Lint-staged检测 git 暂存区的文件更改:
在代码提交之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的。但是整个项目上运行lint速度会很慢,lint-staged能够让lint只检测 git 暂存区的文件,能快速处理验证。

安装后配置:
errorDemo

完成:至此我们的工程化里JS语法部分已经可以完美使用了。除了JS语法之后还有其他的常用的语法优化项吗?

其他可选优化项:

  1. css样式校验:
    stylelint: 传送门
    stylelint跟eslint 在语法检验和使用逻辑上都是一致的,有兴趣的可以根据官网教程在项目中安装并配置使用规范即可呀。

  2. 前端代码格式化工具(限制):
    prettier: 传送门
    一个“有态度”的代码格式化工具,感兴趣可以添加使用呀。
    errorDemo

项目中语言校验完整嵌入配置:

errorDemo
  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript 前端工程化是一种使用工具和流程来提高前端开发效率和质量的方法。它可以帮助我们管理项目构建、模块化、测试、部署等流程,使前端开发更加高效和可维护。 一些常用的前端工程化工具包括: - 包管理器:如 npm 或 yarn,用于管理项目依赖的第三方库和工具。 - 构建工具:如 Webpack 或 Rollup,用于将源代码转换为浏览器可以运行的代码,并且可以做一些优化,如代码压缩、模块化、自动添加浏览器前缀等。 - 自动化测试工具:如 Jest、Mocha 或 Karma,用于自动执行单元测试和集成测试,保证代码的质量和稳定性。 - 部署工具:如 Git、Jenkins 等,用于将项目发布到线上环境。 前端工程化还可以通过使用规范和框架来提高代码质量和团队协作效率。例如,使用 lint 工具来检查代码规范,使用框架如 React、Vue 或 Angular 来组织代码结构。 总之,JavaScript 前端工程化是一种使用工具和流程来提高前端开发效率和质 ### 回答2: JavaScript 前端工程化是一种通过工具和实践来提高前端开发效率和质量的方法。它涉及到对代码、资源和工作流程的管理和优化,旨在满足在复杂的前端项目中面临的挑战。 首先,JavaScript 前端工程化通过模块化来组织和管理代码。使用模块化的方式可以将代码分割成独立的模块,各模块之间可以互相依赖和复用。这样可以提供更好的代码可维护性和复用性,同时也可以避免全局命名冲突和代码碎片化的问题。常用的模块化技术包括 ES6 的模块化语法和模块打包工具,如Webpack。 其次,JavaScript 前端工程化通过自动化构建工具来提高开发效率。通过使用构建工具,我们可以自动完成编译、压缩、合并等繁琐的操作,减少手动操作的时间和错误。常见的构建工具有Grunt、Gulp和Webpack,它们可以根据配置文件自动执行各种任务,并生成优化后的静态文件。 另外,JavaScript 前端工程化还涉及到代码规范和质量保证。通过使用代码规范工具如ESLint,并制定团队统一的代码规范,可以提高团队协作的效率,减少潜在的问题。同时,结合自动化测试工具如Jest、Mocha等,可以实现代码的自动化测试,确保代码质量和稳定性。 最后,JavaScript 前端工程化还可以提供更好的代码部署和发布机制。通过使用持续集成工具如Jenkins,可以自动部署代码到测试和生产环境,提高交付速度和稳定性。同时,还可以使用版本控制工具如Git,实现多人协作和代码版本管理。 总之,JavaScript 前端工程化通过模块化、自动化构建、代码规范和质量保证、代码部署等方式来提高前端开发效率和质量。在现代化的前端开发中,工程化已经成为不可或缺的组成部分,帮助开发者应对复杂的需求和挑战。 ### 回答3: JavaScript前端工程化是一种以提高开发效率、代码质量和项目可维护性为目标的开发方法。它借助工具和规范化的工作流程,帮助开发人员更好地组织、管理和部署JavaScript代码。 前端工程化的核心是模块化。通过使用模块化开发,前端代码可以按照功能进行划分,每个功能模块都拥有独立的代码和依赖关系,使得开发和维护变得更加容易。常用的模块化规范有CommonJS和ES6模块。 另一个关键概念是构建工具。构建工具可以帮助自动化完成一系列任务,如代码合并、压缩、转换、静态资源管理等。常用的构建工具有Webpack和Rollup。这些工具可以根据配置文件自动处理代码,减少手动操作,提高开发效率。 除此之外,前端工程化还包括自动化测试、性能优化和代码规范等方面。自动化测试可以帮助开发人员编写和运行测试用例,确保代码的正确性。性能优化可以通过压缩代码、懒加载和CDN加速等方式提高页面性能。代码规范则可以统一代码风格,提高代码的可读性和可维护性。 总的来说,JavaScript前端工程化是一种通过使用模块化、构建工具和自动化测试等方法,提高前端代码开发效率和质量的开发方法。它可以帮助开发人员更好地组织和管理代码,减少手动操作,提高开发效率和项目可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值