Как написать сценарий Node, который можно запустить из командной строки или с помощью оператора импорта ES6?
Я использую флаг --experimental-modules
и расширение .mjs
для запуска сценариев как ES6modules.
Пример
Скажем, у меня есть следующий скрипт в sayHello.mjs
:
export default function sayHello() {
console.log(`Hello!`);
}
Я бы хотел использовать этот скрипт следующими двумя способами:
С помощью командной строки:
node --experimental-modules sayHello.mjs
С помощью оператора импорта ES6 в другом сценарии:
import sayHello from './sayHello.mjs';
sayHello();
Подробнее
Я ищу решение, подобное использованию module.main
для модулей CommonJS (это не работает для импорта ES6):
if (require.main === module) {
console.log('run from command line');
} else {
console.log('required as a module');
}