Ответ 1
Боюсь, что ответ - нет, или, по крайней мере, пока. Мы знаем, что это будет поддерживаться в будущем, но import
и export
ES2015 не будут действовать, как замена на месте CommonJS require
и module.exports
. Это просто потому, что они не работают одинаково. Вы можете найти более подробную информацию в этом блоге Node.js и это так вопрос. В частности, уже можно запускать и импортировать стандартные модули в Node.js под флагом --experimental-modules
(соответствующий пост в блоге 2ality). Однако эта функция по-прежнему не будет работать с REPL.
Ваша идея использовать babel-node
(который теперь называется babel-cli
) была не так уж и плоха: babel
реализует совместимую функцию require
, которая является своего рода оболочкой, которая может извлекать модули, разработанные для системы любого типа. К сожалению, официальный сайт заявляет об отсутствии поддержки этой функциональности в REPL:
Загрузка модуля в стиле ES6 может не работать должным образом
Из-за технических ограничений загрузка модуля в стиле ES6 не поддерживается полностью в Babel-узле REPL.
Тем не менее, эта проблема не относится к производственному коду, который в любом случае не должен полагаться на REPL. Вместо того, чтобы использовать REPL, вы можете написать сценарий в простом проекте, содержащем babel-cli
, и создать сценарий для запуска транспилированной версии:
{
"name": "my-test-chamber",
"private": true,
"scripts": {
"build": "babel src/main.js -o lib/main.js",
"start": "npm run build && node lib/main.js"
},
"dev-dependencies": {
"babel-cli": "^6.0.0"
}
}