Node.js 如何使用Babel在运行时从NodeJS评估es6代码?

Node.js 如何使用Babel在运行时从NodeJS评估es6代码?,node.js,transform,babeljs,Node.js,Transform,Babeljs,我正在尝试构建一个nodeJS工具来帮助我分析另一个AngularJS源代码。 其想法是: 阅读一些角度项目javascript文件 对于每个文件,抓取内容 eval文件中的内容 做点什么 我面临的问题是,我的Angular源代码使用es6功能,如导入,导出,箭头函数,…等等。我使用的nodeJS还不支持这些特性 因此,我尝试从我的节点应用程序代码中使用@babel/coretransform(),但它不起作用。我不断收到错误,比如意外标识符,这意味着它不理解来自“here”的导入{stuf

我正在尝试构建一个nodeJS工具来帮助我分析另一个AngularJS源代码。 其想法是:

  • 阅读一些角度项目javascript文件
  • 对于每个文件,抓取内容
  • eval
    文件中的内容
  • 做点什么
我面临的问题是,我的Angular源代码使用es6功能,如
导入
导出
箭头函数
,…等等。我使用的nodeJS还不支持这些特性

因此,我尝试从我的节点应用程序代码中使用
@babel/core
transform()
,但它不起作用。我不断收到错误,比如
意外标识符
,这意味着它不理解来自“here”的
导入{stuff}语法

srcFiles.forEach(content => {
     try {
       (function() {
         eval(require("@babel/core").transform(content.text).code)
        }.call(window, angular));
    } catch (e) {
      console.log(e);
    }
  });

示例测试文件:

import _ from 'loadash';

console.log("I'm a file with import and export");

export const = 42;

你知道我怎样才能让这东西工作吗?或者另一种方法?

您可以将选项作为
transform
方法的第二个参数传递。参见示例

您可以将选项作为
transform
方法的第二个参数传递。参见示例