@Hotiton

Пишет Cannot use import statement outside a module, что сделать?

Мой путь файлов примерно такой

  • -Bot
  • -index.js
  • -config.json
  • --commands
  • --ping.js


И проблема в том, что в index.js у меня такой код экспорта:
const client = new Client({ intents: [GatewayIntentBits.Guilds] }); 
module.exports = client;


А т.к мне надо это экспортировать в ping.js, то у меня в ping.js такой код:

import { client } from './../index.js';

client.on("message", () => {
// там дальше скорее всего не нужная часть


После всего это мне выдаёт такую ошибку:
import { client } from './../index';jk
^^^^^^

SyntaxError: Cannot use import statement outside a module

Хотя в config.json добавлен "type": "module"
  • Вопрос задан
  • 3594 просмотра
Решения вопроса 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
Во-первых, нода ничего не знает ни о каких config.json, резолвинг модулей еще смотрит на package.json и то лишь на некоторые поля.
Во-вторых, es-modules должны иметь расширение .mjs в node.js, а .js и .cjs рассматриваются как common-js модули, для .js можно поменять поведение через флаги командной строки при запуске node.
В-третьих, common-js модуль нельзя напрямую импортировать из es-module, благо я давным давно сделал хелпер для этих целей: https://www.npmjs.com/package/commonjs-variables-f...

Подробнее обо всем этом можно почитать тут:
https://nodejs.org/dist/latest-v18.x/docs/api/esm.html
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы