Transpile Node脚本进行测试

时间:2019-03-28 21:27:39

标签: node.js import babeljs es6-modules transpiler

我有一些es6模块,我想在节点中进行单元测试。将所有文件重命名为.mjs都不可行。

为简单起见,假设我有一个像mymodule.js这样的文件,其中包含以下内容:

export default {
  saySomething: function () { console.log("something"); }
}

我想编写一个简单的脚本来测试像这样的test.js并包含以下内容:

import { saySomething } from './mymodule';
saySomething();

我现在真的不打算学习Babel。我只需要一些简单,清晰的说明,例如:

  • 创建一个包含<blahblah>的.babelrc
  • 安装某某
  • 然后运行npx babel test.js(或其他任何方法)

我四处搜寻,并不断找到一堆有关加载babel模块以及不加载babel模块的长篇教程。

我只是在寻找权宜之计-咒语-而不是解释。当然可以在某个地方找到它。我只是找不到。有帮助吗?

更新

以下回复说,无需进行移植,因为节点可以自动理解ES6。我愿意只是误会,但是当我使用Node v11.12.0运行此确切示例时,出现以下错误:

$ node test.js

/home/usr/test/test.js:1
import { saySomething } from './mymodule';
       ^

SyntaxError: Unexpected token {
    at Module._compile (internal/modules/cjs/loader.js:743:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
    at Module.load (internal/modules/cjs/loader.js:666:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:606:12)
    at Function.Module._load (internal/modules/cjs/loader.js:598:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:862:12)
    at internal/main/run_main_module.js:21:11

1 个答案:

答案 0 :(得分:0)

我认为您在这里误解了一些东西。您完全不需要Babel编译要在node.js中执行的ES6代码。 Node本身了解ES6。如果要在浏览器中运行它,则只需将其翻译。