gpt4 book ai didi

javascript - 通过命令行或 ES6 导入运行 Node.js 脚本

转载 作者:行者123 更新时间:2023-11-29 23:16:52 28 4
gpt4 key购买 nike

如何编写可从命令行或通过 ES6 导入语句运行的 Node 脚本?

我正在使用 --experimental-modules 标志和 .mjs 扩展来将脚本作为 ES6 模块运行。

例子

假设我在 sayHello.mjs 中有以下脚本:

export default function sayHello() {
console.log(`Hello!`);
}

我希望能够通过以下两种方式使用这个脚本:

  1. 通过命令行:

    node --experimental-modules sayHello.mjs
  2. 通过另一个脚本中的 ES6 导入语句:

    import sayHello from './sayHello.mjs';

    sayHello();

详情

我正在寻找类似于对 CommonJS 模块使用 module.main 的解决方案(这不适用于 ES6 导入):

if (require.main === module) {
console.log('run from command line');
} else {
console.log('required as a module');
}

最佳答案

你可以试试:

function sayHello() { console.log("Hello"); }
if (process.env.CL == 1){
sayHello();
} else {
export default sayHello;
}

从命令行,使用:

CL=1 node --experimental-modules sayHello.mjs

很简单,但应该可以用

另一种选择是检查 process.argv[1],因为它应该始终是 the filename that was specified from the commandline :

if (process.argv[1].indexOf("sayHello.mjs") > -1){
sayHello();
} else {
export default sayHello;
}

关于javascript - 通过命令行或 ES6 导入运行 Node.js 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52430702/

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