我有一些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
答案 0 :(得分:0)
我认为您在这里误解了一些东西。您完全不需要Babel编译要在node.js中执行的ES6代码。 Node本身了解ES6。如果要在浏览器中运行它,则只需将其翻译。