使用Bash heredoc在终端中可以轻松运行ES5代码:
node <<HEREDOC
var fs = require("fs");
...
HEREDOC
但是,即使使用正确的--experimental-modules标志,ES6代码也不会运行:
node --experimental-modules <<HEREDOC
import fs from "fs";
...
HEREDOC
显示的错误是:
(node:4130) ExperimentalWarning: The ESM module loader is experimental.
[stdin]:1
import fs from "fs";
^^
SyntaxError: Unexpected identifier
at new Script (vm.js:83:7)
at createScript (vm.js:267:10)
at Proxy.runInThisContext (vm.js:319:10)
at Object.<anonymous> ([stdin]-wrapper:6:22)
at Module._compile (internal/modules/cjs/loader.js:722:30)
at evalScript (internal/bootstrap/node.js:670:27)
at ReadStream.<anonymous> (internal/bootstrap/node.js:340:15)
at ReadStream.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1098:12)
at process.internalTickCallback (internal/process/next_tick.js:72:19)
它确实显示了此信息“ ExperimentalWarning:ESM模块加载器是实验性的。” 该装置的Node.js与ES6模块功能正常运行,然而,该import关键字只是不工作。
如何使用Bash heredoc在终端中内联运行ES6代码?我知道我可以编写代码将文件正常加载为ES6模块,但这是一个简短的临时代码,如果它在Heredoc中更好。
子衿沉夜
相关分类