#reactjs #import #syntax-error #es6-modules
Вопрос:
Я использую esm, чтобы разрешить использование синтаксиса импорта/экспорта в бэкэнде проекта react вместо require, но, несмотря на это, теперь я получаю ошибку
Ошибка синтаксиса: Невозможно использовать оператор импорта вне модуля
Мой код в index.js:
require = require("esm")(module);
import userRoutes from './user';
И ошибка, которую я получаю при запуске node index.js
:
(узел:18560) Предупреждение: Чтобы загрузить модуль ES, установите «тип»: «модуль» в файле package.json или используйте расширение .mjs.
(Используетсяnode --trace-warnings ...
для отображения места создания предупреждения)
C:Usershavaldevonline-shopgocodeshop-serverindex.js:5
импортируйте маршруты пользователей из ‘./user’;Ошибка синтаксиса: Невозможно использовать оператор импорта вне модуля
(Я установил esm с помощью npm i esm).
Есть ли какая-то причина, по которой esm не принимает импорт?
Комментарии:
1. Вы пробовали это сделать?
set "type": "module" in the package.json or use the .mjs extension.
2. Нет, у меня нет «типа»: «модуль» в package.json, так как я использую синтаксис require в некоторых других частях серверной части — может ли это быть проблемой? И если я изменю расширение .js на .mjs в обоих файлах (включая index.js) или только user.js?
3. я проверил npm README esm. npmjs.com/package/esm похоже, вам не хватает второго. модуль.экспорт = требуется(«./main.js»)
4. Я попытался добавить module.exports = require(«./маршруты/пользователь»); после require(«esm»)(модуль) (у меня нет main.js, Я называю это внутри index.js) но все равно получаю ту же ошибку
5. как вы запускаете проект…вы должны запустить его с помощью esm node-r your_file.js кстати, вы упоминаете проект nodejs, а не реагируете? это для nodejs, верно?
Ответ №1:
//Check the order of import.
import userRoutes from './user';
const requiredModule = require("esm")(module);