编程技术文章分享与教程

网站首页 > 技术文章 正文

前端开发必备工具箱「值得收藏」 前端常用的开发工具有哪些

hmc789 2024-11-11 12:50:07 技术文章 2 ℃


作者:Tomas Pustelnik

译者:LeanCloud

转发链接:https://segmentfault.com/a/1190000022845846

原链接:https://pustelto.com/blog/tools-i-use/

前言

前端开发是一个相当复杂的方向,至少就大项目而言,你很难仅用浏览器和编辑器完成工作。这里列出了我在开发过程中用到的工具。我希望这个列表能帮助其他人发现一些可以用在工作流程中的好工具。

必备工具

这些是我日常使用的工具,缺了它们我很难高效工作。

  • VS Code —— 我选择的编辑器是微软出品的 VS Code。免费、轻量(和 WebStorm 之类的 IDE 相比),大量开箱即用的特性,丰富的扩展。
  • 浏览器 —— 我的默认浏览器是 Firefox,有时切换到 Chrome 进行开发。我也安装了其他浏览器,以供测试之用。
  • DevDocs —— 这个网页应用汇聚了各种项目的文档,还支持离线使用。当我需要查询文档时,一般会访问这个站点。我主要用它查询 JS 和 DOM/浏览器方面的文档。我真没找到什么能和它媲美的工具(详尽而易于搜索)。你应该看一看。
  • Google —— 没错,我经常上网搜索。关于某个 bug 的信息,如何做某件事(有时会是很基础的事情),软件包和软件库的示例代码和文档(如果 DevDocs 没收录),我都会上网搜一搜。
  • MDN —— 对任何 web 开发者来说这都是非常棒的资源。这个站点的部分内容可以在之前提到的 DevDocs 上找到,不过有些页面只有 MDN 上有。我主要用它查询一些关于可访问性的内容,上面有不少讨论这一主题的文章。
  • StackOverflow —— 经常 google 到上面的内容。如果有问题,多半能在上面找到答案。
  • GitHub —— 某个软件包我有疑问,或者想知道关于它的更多信息,我会到它的 GitHub 仓库去翻 issue 和代码,通常能找到问题的答案,就像 StackOverflow。据我个人的经验,如果有关于某个特定软件包的问题,在 GitHub 上翻到相关 issue 的几率要高于在 StackOverflow 上找到相关问题(像 React 这类特别流行的库例外)。当然,我也使用 GitHub 的版本控制功能。

CSS

  • CSS-Tricks —— 你能在上面找到大量有趣的文章和窍门。这个网站上也有一个指南(Guides)栏目,包含关于特定 HTML、CSS、JS 概念的深入讲解。我常常访问这个站点更新关于网格布局的知识。不过其他指南也非常棒。这个站点绝对值得一看。
  • CSS Reference —— 如果需要更新 CSS 知识或者查下不熟悉、不常用的属性,我会访问这个站点。上面对每个 CSS 属性的讲解很深入,给出的示例也很清楚,便于你理解这些属性并应用于自己的项目。站点的作者是 Sara Soudain。
  • Can I Use —— 如果你在意浏览器兼容性,希望负责任地使用前沿特性(渐进增强),那么这是不可或缺的工具。

性能优化

  • SVGOMG —— 从设计师那里收到一份为 web 优化的 SVG 文件,这种事情实在太罕见。所以我会用 SVGOMG 优化 SVG,效果十分惊人。这是 SVGO 的网页版,所以你也可以使用相应的命令行工具压缩 SVG。
  • Shrinkme.app —— 使用这个网页应用优化图像文件十分快捷方便。开箱即用,支持批量上传,效果相当不错。
  • Sqoosh —— 需要将图片压缩到极致,或者创建 webp 格式的图像文件的时候,我会使用这个网站。你可以用它提供的大量选项调出满意的效果。你也可以用它缩放图像或是转换图像格式。它用了很多前沿技术(当初 Google Chrome 团队做这个工具是为了演示现代浏览器的功能),所以你需要使用 Chrome 或基于 Chromium 的浏览器(Opera、Brave 等)。我上次试过,在 Firefox 下这个站点并不能正常工作。
  • Icomoon app —— 我需要创建定制图标集时会用这个工具。可以选择现有图标(免费图标和付费图标),也可以上传自己的图标。接着就可以生成相应的图标字体或 SVG 图标文件(今时今日,后者是一个更好的选择)。
  • Google Fonts —— 需要创建定制 web 字体时,我会首先访问 Google Fonts。我通常会下载所需文件,然后自行托管,这样性能更好。Google Fonts 有一个很棒的特性,允许只编码需要用到的字符。
  • Glyphhanger —— 减少文件大小是提升网站性能的最佳途径之一。Web 字体经常包含很多我们不需要的字形,所以我会用 Glyphhanger 子集化字体。你可以指定需要的 Unicode 区段和字符,Glyphanger 会创建一个只包含相应字符的字体文件。它也可以将 .ttf 文件转为其他更适合 web 的格式,比如 .woff 和 .woff2。需要花一点功夫正确使用这个工具,不过我觉得存在字体性能问题时,这是一个值得考虑的选项。
  • Lighthouse —— 我在发布网页前会进行测试,Chrome 浏览器的 Lighthouse 是最常用的工具之一。它会检查各方面的常见问题并给出评分,也会给出改进提示。这是一个非常好的工具,可以初步检查我在开发时是否遗漏了一些问题。
  • Font style matcher —— 定制字体加载后会切换字体,如果你希望这个切换不容易察觉,那么可以使用这个字体风格匹配器找到和定制字体类似的默认字体。

可访问性

  • VoiceOver —— macOS 的默认屏幕阅读器。需要花一点时间熟悉这个工具(我推荐这篇介绍文章),不过我努力在开发过程中时不时用下 VoiceOver。多亏这一点,我的项目中 aria 属性和面向屏幕阅读器的文本使用量大增。使用 VoiceOver 后你会惊讶地发现一些日常使用的网页组件为屏幕阅读器用户提供的上下文信息少得可怜。
  • a11y guidelines —— 通常我会尽量去找可访问性良好的解决方案,不过有的时候还是不得不自己动手,这时我会参考这个页面。这篇可访问性指导原则详细解释了什么是可访问性,为什么可访问性很重要,如何实现。很多情况下,复制其中的示例代码略作调整后即可应用于实际项目。
  • WAI-ARIA specification —— 我并不经常阅读规范。如果我在读规范,那么往往是在读这一篇。其中包含大量关于如何使用 aria 角色和属性的有价值信息。要我说,任何严肃对待可访问性的开发者,都需要读下这篇规范。

值得一提

最后列下个人觉得挺好用但又没那么常用的工具。

  • Responsive breakpoints generator —— 手动创建响应式图像的多种变体很痛苦。用这个工具就很方便。
  • HTML Arrows —— 各种符号的 Unicode 码、HTML 十六进制编码、HTML 实体编码、HTML 实体。
  • Char reference —— 类似上一个工具,但显示的信息更少,主要显示 HTML 实体。
  • Typography cheatsheet —— 讲解常用的字体排印规则和问题。
  • Modular scale —— 设计网页时我通常使用这个工具选择模块化的缩放方案。如有兴趣了解更多关于这个主题的内容,请参考 A List Appart 上的这篇文章 和 Tim Brown 在 Build Conf 2010 上的演讲。
  • CSS gradient generetor —— 创建渐变背景的在线工具。
  • Smooth shadow generator —— 为网站添加美观的阴影。
  • Bezier curve generator —— 定制 CSS 的立方贝塞尔曲线定时函数。
  • Easing functions —— 各种缓动函数,可用于 CSS 动画和变换。
  • ngrok —— 需要向别人展示作品或者测试不同设备上的效果时,我会使用 ngrok。ngrok 可以将本地运行的服务暴露到公网上。不过有的时候配合 Browserstack 的 localhost 扩展时不能工作。
  • sharing buttons —— 如果你只需要一个简单的分享按钮,不想用 JS,不想折腾追踪用户的复杂逻辑,那么这个工具特别好用。
  • Unix timestamp converter —— unix 时间戳转换器。
  • CSS to JS converter —— 可以将 CSS 转成 JS,也可以将 JS 转回 CSS。基于 CSS-in-JS 库开发时这个工具十分方便。
  • Browser default styles —— 常见浏览器的默认样式。

结语

以上就是我在工作中使用的提高效率的工具,希望能帮你发现一些有用的工具。

推荐JavaScript经典实例学习资料文章

一文让你彻底搞懂移动前端和Web 前端区别在哪里

63个JavaScript 正则大礼包「值得收藏」

提高你的 JavaScript 技能10 个问答题

JavaScript图表库的5个首选

一文彻底搞懂JavaScript 中Object.freeze与Object.seal的用法

可视化的 JS:动态图演示 - 事件循环 Event Loop的过程

教你如何用动态规划和贪心算法实现前端瀑布流布局「实践」

可视化的 js:动态图演示 Promises & Async/Await 的过程

原生JS封装拖动验证滑块你会吗?「实践」

如何实现高性能的在线 PDF 预览

细说使用字体库加密数据-仿58同城

Node.js要完了吗?

Pug 3.0.0正式发布,不再支持 Node.js 6/8

纯JS手写轮播图(代码逻辑清晰,通俗易懂)

JavaScript 20 年 中文版之创立标准

值得收藏的前端常用60余种工具方法「JS篇」

箭头函数和常规函数之间的 5 个区别

通过发布/订阅的设计模式搞懂 Node.js 核心模块 Events

「前端篇」不再为正则烦恼

「速围」Node.js V14.3.0 发布支持顶级 Await 和 REPL 增强功能

深入细品浏览器原理「流程图」

JavaScript 已进入第三个时代,未来将何去何从?

前端上传前预览文件 image、text、json、video、audio「实践」

深入细品 EventLoop 和浏览器渲染、帧动画、空闲回调的关系

推荐13个有用的JavaScript数组技巧「值得收藏」

前端必备基础知识:window.location 详解

不要再依赖CommonJS了

犀牛书作者:最该忘记的JavaScript特性

36个工作中常用的JavaScript函数片段「值得收藏」

Node + H5 实现大文件分片上传、断点续传

一文了解文件上传全过程(1.8w字深度解析)「前端进阶必备」

【实践总结】关于小程序挣脱枷锁实现批量上传

手把手教你前端的各种文件上传攻略和大文件断点续传

字节跳动面试官:请你实现一个大文件上传和断点续传

谈谈前端关于文件上传下载那些事【实践】

手把手教你如何编写一个前端图片压缩、方向纠正、预览、上传插件

最全的 JavaScript 模块化方案和工具

「前端进阶」JS中的内存管理

JavaScript正则深入以及10个非常有意思的正则实战

前端面试者经常忽视的一道JavaScript 面试题

一行JS代码实现一个简单的模板字符串替换「实践」

JS代码是如何被压缩的「前端高级进阶」

前端开发规范:命名规范、html规范、css规范、js规范

【规范篇】前端团队代码规范最佳实践

100个原生JavaScript代码片段知识点详细汇总【实践】

关于前端174道 JavaScript知识点汇总(一)

关于前端174道 JavaScript知识点汇总(二)

关于前端174道 JavaScript知识点汇总(三)

几个非常有意思的javascript知识点总结【实践】

都2020年了,你还不会JavaScript 装饰器?

JavaScript实现图片合成下载

70个JavaScript知识点详细总结(上)【实践】

70个JavaScript知识点详细总结(下)【实践】

开源了一个 JavaScript 版敏感词过滤库

送你 43 道 JavaScript 面试题

3个很棒的小众JavaScript库,你值得拥有

手把手教你深入巩固JavaScript知识体系【思维导图】

推荐7个很棒的JavaScript产品步骤引导库

Echa哥教你彻底弄懂 JavaScript 执行机制

一个合格的中级前端工程师需要掌握的 28 个 JavaScript 技巧

深入解析高频项目中运用到的知识点汇总【JS篇】

JavaScript 工具函数大全【新】

从JavaScript中看设计模式(总结)

身份证号码的正则表达式及验证详解(JavaScript,Regex)

浏览器中实现JavaScript计时器的4种创新方式

Three.js 动效方案

手把手教你常用的59个JS类方法

127个常用的JS代码片段,每段代码花30秒就能看懂-【上】

深入浅出讲解 js 深拷贝 vs 浅拷贝

手把手教你JS开发H5游戏【消灭星星】

深入浅出讲解JS中this/apply/call/bind巧妙用法【实践】

手把手教你全方位解读JS中this真正含义【实践】

书到用时方恨少,一大波JS开发工具函数来了

干货满满!如何优雅简洁地实现时钟翻牌器(支持JS/Vue/React)

手把手教你JS 异步编程六种方案【实践】

让你减少加班的15条高效JS技巧知识点汇总【实践】

手把手教你JS开发H5游戏【黄金矿工】

手把手教你JS实现监控浏览器上下左右滚动

JS 经典实例知识点整理汇总【实践】

2.6万字JS干货分享,带你领略前端魅力【基础篇】

2.6万字JS干货分享,带你领略前端魅力【实践篇】

简单几步让你的 JS 写得更漂亮

恭喜你获得治疗JS this的详细药方

谈谈前端关于文件上传下载那些事【实践】

面试中教你绕过关于 JavaScript 作用域的 5 个坑

Jquery插件(常用的插件库)

【JS】如何防止重复发送ajax请求

JavaScript+Canvas实现自定义画板

Continuation 在 JS 中的应用「前端篇」

作者:Tomas Pustelnik

译者:LeanCloud

转发链接:https://segmentfault.com/a/1190000022845846

原链接:https://pustelto.com/blog/tools-i-use/

Tags:

标签列表
最新留言