关于javascript:babelregister-实时编译转码原理

8次阅读

共计 326 个字符,预计需要花费 1 分钟才能阅读完成。

@babel/register 实时编译转码原理

  1. 应用第三方库 pirates(海盗) 给 NodeJS 的 reuqire 减少钩子 Hook, 自定义了 require 函数
  2. 将 require 内容交给 @babel/core transform(code, opts) 转码解决

pirates requier Hook 的原理

const Module = require('module');

Module._extensions['.js'] = (mod, filename) => {mod._compile('console.log(" 这是编译后的内容了 ");', filename);
  mod.exports = {a: 123};
};

console.log(require('./build.js'));
正文完
 0