В Node.js, вы можете использовать синтаксис импорта модуля ES (ECMAScript) с помощью дополнительной настройки. До версии Node.js 12, этот синтаксис не поддерживался нативно, и приходилось использовать CommonJS (require) или инструменты, такие как Babel, чтобы использовать синтаксис импорта.
Распространённые ошибки
![](/_next/image?url=https%3A%2F%2Fapi.unstock.ru%2Fmedia%2F204%2Fimage-4.png&w=3840&q=60)
ERR_REQUIRE_ESM: require() of ES Modules is not supported
Система модулей ES теперь является стандартным методом объединения кода JavaScript для совместного использования. Модуль ES может использоваться только с другими модулями ES.
Итак, чтобы импортировать модули ES в наш проект, мы сначала должны определить проект также как модуль ES. Мы делаем это, устанавливая для type поля в нашем package.json файле значение "module".
{ "type": "module", // other fields... }
Как только мы сделаем это, мы можем использовать синтаксис ES import для модуля, например:
import chalk from 'chalk';
![](/_next/image?url=https%3A%2F%2Fapi.unstock.ru%2Fmedia%2F205%2Fimage-5.png&w=3840&q=60)
SyntaxError: Cannot use import statement outside a module
Обратите внимание, что если вы используете .js файлы, вы должны явно указывать расширение файла в импортах. В противном случае Node.js будет пытаться искать файлы без расширения, что может привести к ошибке.