NodeJS (Сервер): ReferenceError: требование не определено, когда тип: модуль - PullRequest
0 голосов
/ 24 февраля 2020

На узле 13.8 я пытаюсь использовать импорт / экспорт.

EG: import {ChatClient, Message, MessageParser} from './chat-client/module.js';

Но когда я делаю это, я получаю

SyntaxError: Cannot use import statement outside a module

Так в моем пакете. json Я установил "type" : "module" но теперь, когда я пытаюсь использовать const io = require('socket.io-client');

, я получаю ReferenceError: require is not defined

Есть ли способ использовать импорт / экспорт и требовать?

Оригинал ошибка, означает ли это, что я должен обернуть свою библиотеку в библиотеку NPM? Это библиотека, которая использует как интерфейс, так и бэкэнд, поэтому важно использовать импорт / экспорт.

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Несколько баллов:

  1. Используйте .mjs вместо .js.
  2. Никогда не используйте require.
  3. Использовать необязательно "тип ":" модуль ".
0 голосов
/ 24 февраля 2020

Как сказано в документации:

No require, exports, module.exports, __filename, __dirname
These CommonJS variables are not available in ES modules.

https://nodejs.org/api/esm.html#esm_no_require_exports_module_exports_filename_dirname

Вы не можете использовать оба этих способа изначально. Если вы хотите сделать это, используйте Babel для переноса кода.

...