gpt4 book ai didi

node.js - ES6 模块如何在 Node 中作为脚本运行?

转载 作者:搜寻专家 更新时间:2023-10-31 23:45:11 26 4
gpt4 key购买 nike

ES6 模块如何在 Node 中作为脚本运行?

当我尝试这个 shebang 时出现错误:

#!/usr/bin/env node --experimental-modules

/usr/bin/env: ‘node --experimental-modules’: No such file or directory

如果我使用这个 shebang 它有语法错误(当然):

#!/usr/bin/env node

SyntaxError: Unexpected token import

我正在使用的解决方法是使用 shell 脚本来调用模块:

#!/usr/bin/env sh

BASEDIR=$( dirname "$0" )
node --experimental-modules $BASEDIR/script.mjs "$@"

是否可以在没有第二个文件的情况下使它工作?

最佳答案

我已经修补了 Ishan Thilina Somasiri在没有 .mjs 扩展名的情况下使用 Node 13 的解决方案:

#!/usr/bin/env bash
":" //# comment; exec /usr/bin/env node --input-type=module - "$@" < "$0"

import { hostname } from 'os';

console.log(hostname());

技巧几乎相同,但使用标准输入,这是唯一的 documented当您没有 package.json.mjs 扩展名时的方式。因此,一个独立的无扩展脚本。

但是__dirname__filename 等全局变量将不可用。

关于node.js - ES6 模块如何在 Node 中作为脚本运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48179714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com