#node.js #svelte #sveltekit
Вопрос:
Я только что скомпилировал приложение SvelteKit с помощью узла-адепта, выдающего npm run build
это результат, который я получаю
$ ls build/
assets index.js pre-rendered
Но когда я пытаюсь его выполнить, я получаю:
$ node build/index.js
(node:103550) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/home/ubuntu/tmp/build/index.js:62
import http from "http";
^^^^^^
Что я мог бы решить, создав файл package.json, подобный этому:
{
"type": "module"
}
Но затем я получаю ошибки импорта, если не скопирую всю папку node_modules в папку сборки
Это правильный способ распространения приложения?
Я просто хочу скопировать необходимые файлы и начать с node build/indes.js
Кстати, я использую SvelteKit 1.0.0-next.132 и узел 16.6.1
Комментарии:
1. Можете ли вы поделиться тем, какой адаптер вы используете для создания сборки?
2. Извините, моя ошибка, я добавил ссылку на адаптер узла, который я использую
3. Попробуйте запустить «сборку узла». Также укажите, какую версию узла вы используете
4. Я обновил вопрос в соответствии с версией SvelteKit и узла, которую я использую, спасибо
Ответ №1:
Воспользуйся
import * as http from 'http';
вместо import http from 'http';
Вероятно, вы пытаетесь импортировать модуль, отличный от ESM, используя синтаксис ESM, который не будет работать.
Комментарии:
1. не могли бы вы немного подробнее рассказать об этом?
2. Для дальнейшего чтения: redfin.engineering/…