Задать вопрос
Dr_Elvis
@Dr_Elvis
В гугле забанен

Как правильно импортировать модуль js в js без html?

Хочу сделать файл конфигурации
config.js
export let test = 'This is test';
Добавить его в мой основной файл js
main.js
import * as config from "config.js";
console.log(`Import from config: ${config.test}`);

Но в браузере ругается
Cannot use import statement outside a module
Как правильно импортировать свой файл с настройками?
Файлы находятся рядом
  • Вопрос задан
  • 267 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
@wakenbyWork
Если не используется сборщик, то лучше его взять. Могу посоветовать esbuild. Не знаю вашей задачи, можно и vite, у него под капотом esbuild

Если используете уже что-то, хоть тот-же webpack. То нужно понять почему не работает. Указано ли "type": "module" в package.json

Если нет возможности использовать сборщик, то вот обходной путь, но это такое себе:

config.js
export const options = {
  foo: 'bar'
}


main.js
import("./config.js").then((res) => {
  const { options } = res;
  console.log(options.foo);
});


Или даже так:

const initApp = async () => {
  const { options } = await import('./options')

  console.log(options)
}

initApp()
Ответ написан
otdameskapizm
@otdameskapizm
Помог ответ? Отметь решением...
Вы прописывали type="module" ?
Ответ написан
@kttotto
пофиг на чем писать
В ошибке все написано. Вы не можете использовать этот синтаксис для файла, который находится вне модуля. Чтобы выбрать вариант решения, нужно точнее понимать как Вы формируете свою сборку? Вы используете какой-то сборщик или просто js файлики. Если используете сборщик, то type: "module" в package.json может решить проблему ил возможно у Вас не указаны версии ES6.
Если никаких сборщиков не используете, то попробуйте более древний способ config=require(./config.js.js); Или можете создать модуль и импортировать из модуля.
Ответ написан
Ваш ответ на вопрос

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

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