-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
工程化面试题 #5
Comments
Vite为什么快,说一下你对 Vite 的理解Vite 作为一款新的前端构建工具 Vite 的开发服务器是基于 ES Module 实现了按需编译,一个import对应一个请求,vite接收到请求进行编译返回。 而webapck启动开发服务,是先打包再加载,打包是递归所有依赖树,比较慢。 对于第三方模块 vite会进行预构建:
|
Tree-shakingTree-Shaking 它基于 ES Module 的静态分析特性,打包工具可以分析出项目中哪些导出的代码实际上没有被导入使用。移除未引用的代码(dead-code),减少打包体积。最早是由 rollup 实现的
webpack实践:
NPM包设计:
|
Webpeck 构建流程
webpack 会在特定的时间点广播特定的事件,插件监听到特定的事件执行对应的逻辑,并可以调用 Webpack 提供的 API,改变构建结果。 |
了解过Babel吗?写过Babel插件吗AST :抽象语法树,对代码的一种结构化表示,是树形结构。应用:代码高亮,JS转义,代码压缩,ESLint,Prettier等 babel 编译 ES5 的过程:parse(词法分析 语法分析生成AST)、transform(通过 traverse 遍历 AST 进行处理转换)、generator (生成代码) babel插件可以修改AST, |
pnpmnpm问题:
|
CommonJS 和 ES Module1. 说区别
2. 循环引用问题
3. 说CJS原理
4. ESM 和 no bundle
|
package.json 的 dependencies
|
命令行解析
|
No description provided.
The text was updated successfully, but these errors were encountered: