我正在将我的.js文件转换为.mjs文件,但遇到了一个问题.

我使用shell 脚本中的JS函数,如下所示:

$ node --eval "require(\"./foo.js\").bar($a, $b)"

把它变成foo.mjs后,运行:

$ node --experimental-modules --eval "import foo from \"./foo.mjs\"; foo.bar($a, $b)"

yield 率

[eval]:1
import foo from "./foo.mjs"; foo.bar(, )
^^^^^^

SyntaxError: Cannot use import statement outside a module
$ node --experimental-modules foo.mjs

什么都不做,或者如果我加console.log就打印"Hello World".我需要用参数运行它的bar()函数,但不想为此添加中间脚本.

推荐答案

您可以使用选项--input-type指定输入的类型:

这会将Node.js配置为将--evalSTDIN输入解释为CommonJS或ES模块.有效值为commonjsmodule.除非使用--experimental-default-type=module,否则默认为commonjs.

也是这样做的:

node --input-type=module --eval "import foo from \"./foo.mjs\"; foo.bar($a, $b)"

Node.js相关问答推荐

如何在node.js中以随机顺序调用函数并按顺序操作

Windows上使用ES6+的OpenAPI规范的Express服务器不接受嵌套路由'

在我的Next.js应用程序中没有正确设置Process.env.NODE_ENV

express返回意外的URL

是否可以在MongoDB中比较和匹配引用文档中的字段

如何发送比特币BTC使用发送加密使用WIF密钥在 node ,js

构建期间 Docker 容器中的 npm 安装失败

Promise 和 Azure 语音转文本

在mongoose虚拟属性中处理异步操作

数据未被中间件解析

级联定时器和Jest 的异步功能

将 AllowDiskUse true 添加到 node.js 中的 MongoDB 聚合?

Node.js 大文件上传到 MongoDB 阻塞了事件循环和工作池

如果 express.js (node.js) http 请求在完成之前关闭会发生什么?

如何在 cypress 测试中进行计算

Mongoose:查找、修改、保存

使用 ES6 语法和动态路径导入模块

__dirname 未在 Node 14 版本中定义

如何从 Node.js 应用程序Ping?

NodeJS:如何调试检测到 EventEmitter 内存泄漏.添加了 11 个侦听器