Как оценить код es6 из NodeJS во время выполнения с Babel? - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь создать инструмент nodeJS, чтобы помочь мне проанализировать другой исходный код AngularJS. Идея состоит в том, чтобы:

  • читать некоторые файлы javascript углового проекта
  • для каждого файла, захватить содержимое
  • eval содержимое из файла
  • сделать что-нибудь

Проблема, с которой я сталкиваюсь, заключается в том, что мой исходный код Angular использует функции es6, такие как import, export, arrow functions, ... и т. Д. и я использую nodeJS, который пока не поддерживает эти функции.

Итак, я попытался использовать @babel/core transform() из моего кода приложения Node, но он не работает. Я получаю сообщение об ошибке типа Unexpected identifier, что означает, что он не понимает синтаксис import {stuff} from 'here';.

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;

Есть идеи, как я могу заставить эту штуку работать? Или, может быть, другой подход?

...