工程化
文章平均质量分 72
东都花神
这个作者很懒,什么都没留下…
展开
-
babel源码分析 - generator
这个 babel 解析的最后一篇,我们需要借助 generator 将处理好的 AST 重新转化为代码,从而完成整个流程。首先还是回到 babel-core 的 run 方法中,当执行 generateCode(config.passes, file) 方法时最终执行的下面的代码:// babel-generator/src/index.tsexport default function generate( ast: t.Node, opts?: GeneratorOptions, co原创 2021-05-30 10:05:03 · 747 阅读 · 0 评论 -
babel源码分析 - traverse
上篇地址:babel 源码分析 一 parse接着上篇,traverse 的主要工作是将 ES6 的 AST 转化为 ES5 的 AST,babel 的各种插件也都是基于此实现的,比如 JSX,TS 的转化等。还记得入口篇中最后 run 方法里的 transformFile 方法吗,它执行的时候最终会执行下面的方法:// babel-traverse/src/index.jsfunction traverse( parent: t.Node, opts: TraverseOptions =原创 2021-05-09 22:25:13 · 1684 阅读 · 0 评论 -
babel 源码分析 一 parse
接着上篇,我们继续分析 babel 如何将原始代码转化为 AST 的。上篇中执行 parse 的最终执行的就是这个函数// babel-parser/src/index.jsexport function parse(input: string, options?: Options): File { if (options?.sourceType === "unambiguous") { // some code } else { // ???????????? 执行这里 ?原创 2021-05-09 10:36:10 · 972 阅读 · 0 评论 -
babel 源码分析 - 入口
babel 是日常工作中必不可少的依赖包,虽然天天在用,但是对于内部构造却了解不多,抽空看下了源码,从入口文件开始一步步解密 babel 是如何工作的。当我们使用 npm run babel 的时候会执行到下面的代码,具体位置是 babel-cli/src/babel/index.js#!/usr/bin/env nodeimport parseArgv from "./options";import dirCommand from "./dir";import fileCommand from原创 2021-05-08 22:34:23 · 657 阅读 · 0 评论