как распространять папку сборки с помощью SvelteKit

#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/…