工程化
- Vue CLI 3.x 有哪些功能?Vue CLI 3.x 的插件系统了解?
- Vue CLI 3.x 中的 Webpack 是如何组装处理的?
- Vue 2.x 如何支持 TypeScript 语法?
- 如何配置环境使得 JavaScript 项目可以支持 TypeScript 语法?
- 如何对 TypeScript 进行 Lint 校验?ESLint 和 TSLint 有什么区别?
- Node.js 如何支持 TypeScript 语法?
- TypeScript 如何自动生成库包的声明文件?
- Babel 对于 TypeScript 的支持有哪些限制?
- Webpack 中 Loader 和 Plugin 的区别是什么?
- 在 Webpack 中是如何做到支持类似于 JSX 语法的 sourceMap 定位?
- 发布 Npm 包如何指定引入地址?
- 如何发布开发项目的特定文件夹为 Npm 包的根目录?
- 如何发布一个支持 Tree Shaking 机制的 Npm 包?
- Npm 包中 peerDependencies 的作用是什么?
- 如何优雅的调试需要发布的 Npm 包?
- 在设计一些库包时如何生成版本日志?
- 了解 Git(Submodule)子模块吗?简单介绍一下 Git 子模块的作用?
- Git 如何修改已经提交的 Commit 信息?
- Git 如何撤销 Commit 并保存之前的修改?
- Git 如何 ignore 被 commit 过的文件?
- 在使用 Git 的时候如何规范 Git 的提交说明(Commit 信息)?
- 简述符合 Angular 规范的提交说明的结构组成?
- Commit 信息如何和 Github Issues 关联?
- Git Hook 在项目中哪些作用?
- Git Hook 中客户端和服务端钩子各自用于什么作用?
- Git Hook 中常用的钩子有哪些?
- pre-commit 和 commit-msg 钩子的区别是什么?各自可用于做什么?
- husky 以及 ghook 等工具制作 Git Hook 的原理是什么?
- 如何设计一个通用的 Git Hook?
- Git Hook 可以采用 Node 脚本进行设计吗?如何做到?
- 如何确保别人上传的代码没有 Lint 错误?如何确保代码构建没有 Lint 错误?
- 如何在 Vs Code 中进行 Lint 校验提示?如何在 Vs Code 中进行 Lint 保存格式化?
- ESLint 和 Prettier 的区别是什么?两者在一起工作时会产生问题吗?
- 如何有效的识别 ESLint 和 Prettier 可能产生冲突的格式规则?如何解决此类规则冲突问题?
- 在通常的脚手架项目中进行热更新(hot module replacement)时如何做到 ESLint 实时打印校验错误信息?
- 谈谈你对 sourceMap 的了解?
- 如何调试 Node.js 代码?如何调试 Node.js TypeScript 代码?在浏览器中如何调试 Node.js 代码?
- 列举你知道的所有构建工具并说说这些工具的优缺点?这些构建工具在不同的场景下应该如何选型?
- VS Code 配置中的用户和工作区有什么区别?
- VS Code 的插件可以只对当前项目生效吗?
- 你所知道的测试有哪些测试类型?
- 你所知道的测试框架有哪些?
- 什么是 e2e 测试?有哪些 e2e 的测试框架?
- 假设现在有一个插入排序算法,如何对该算法进行单元测试?
- 你所知道的 CI/CD 工具有哪些?在项目中有接触过类似的流程吗?
- 如果让你实现一个 Web 前端的 CI/CD 工程研发平台,你会如何设计?
- 如果我们需要将已有项目中的线上产物资源(例如图片)转换成本地私有化资源,你有什么解决方案?
- 如何使用 Vue CLI 3.x 定制一个脚手架?比如内部自动集成了 i18n、axios、Element UI、路由守卫等?
- Jenkins 如何配合 Node.js 脚本进行 CI/CD 设计?
通用性
- 如果让你设计一个通用的项目脚手架,你会如何设计?一个通用的脚手架一般需要具备哪些能力
- 如果让你设计一个通用的工具库,你会如何设计?一个通用的工具库一般需要具备哪些能力
- 假设你自己实现的 React 或 Vue 的组件库要设计演示文档,你会如何设计?设计的文档需要实现哪些功能
- 在设计工具库包的时候你是如何设计 API 文档的
业务
- 什么是单点登录?如何做单点登录?
- 如何做一个项目的国际化方案?
- 如何做一个项目的监控和埋点方案?
- 如何建设项目的稳定性(监控、灰度、错误降级、回滚...)?
- 一般管理后台型的应用需要考虑哪些性能方面的优化?
- 简述一些提升项目体验的案例和技术方案(骨架屏、Loading 处理、缓存、错误降级、请求重试...)?
- 假设需要对页面设计一个水印方案,你会如何设计?