Какой синтаксис использовать в nodejs? import модуля ES или require()

10 просмотров

1 месяц назад

Empty

Содержание

Распространённые ошибки

В Node.js, вы можете использовать синтаксис импорта модуля ES (ECMAScript) с помощью дополнительной настройки. До версии Node.js 12, этот синтаксис не поддерживался нативно, и приходилось использовать CommonJS (require) или инструменты, такие как Babel, чтобы использовать синтаксис импорта.

Распространённые ошибки

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';

Если мы не сделаем наш проект модулем ES, вы получите другую ошибку: SyntaxError: Cannot use import statement outside a module

SyntaxError: Cannot use import statement outside a module

Обратите внимание, что если вы используете .js файлы, вы должны явно указывать расширение файла в импортах. В противном случае Node.js будет пытаться искать файлы без расширения, что может привести к ошибке.