Sveltekit run build = 警告:要加载 ES 模块,请在 package.json 中设置 "type": "module" 或使用 .mjs 扩展名

问题描述 投票:0回答:1

我使用 Skeleton UI 编写了一个简单的 Sveltekit 应用程序。我使用 npm run build 创建了构建文件夹。

如果我使用 node index.js 通过节点在本地运行它,它工作正常,并且该站点是可访问的。当我创建一个使用 Ubuntu 22.04 运行的新 VPS、安装 Node.js 22.10.0 并使用 Node Index.js 测试应用程序时,我收到此错误:

(node:33314) 警告:要加载 ES 模块,请在中设置 "type": "module" package.json 或使用 .mjs 扩展名。 /www/test/index.js:1 从 './handler.js' 导入 { handler } ; ^^^^^^

语法错误:无法在模块外部使用 import 语句 在wrapSafe(内部/模块/cjs/loader.js:915:16) 在 Module._compile (内部/modules/cjs/loader.js:963:27) 在 Object.Module._extensions..js (内部/模块/cjs/loader.js:1027:10) 在 Module.load (内部/modules/cjs/loader.js:863:32) 在 Function.Module._load (内部/modules/cjs/loader.js:708:14) 在 Function.executeUserEntryPoint [作为 runMain] (内部/模块/run_main.js:60:12) 在内部/main/run_main_module.js:17:47

该项目的 package.json 如下所示:

{
    "name": "test",
    "version": "0.0.1",
    "private": true,
    "type": "module",
    "scripts": {
        "dev": "vite dev",
        "build": "vite build",
        "preview": "vite preview",
        "lint": "prettier --check . && eslint .",
        "format": "prettier --write ."
    },
    "devDependencies": {
        "@skeletonlabs/skeleton": "2.6.0",
        "@skeletonlabs/tw-plugin": "0.3.0",
        "@sveltejs/adapter-auto": "^3.0.0",
        "@sveltejs/kit": "^2.0.0",
        "@sveltejs/vite-plugin-svelte": "^3.0.0",
        "@tailwindcss/forms": "0.5.7",
        "@tailwindcss/typography": "0.5.10",
        "autoprefixer": "10.4.16",
        "eslint": "^8.28.0",
        "eslint-config-prettier": "^9.1.0",
        "eslint-plugin-svelte": "^2.30.0",
        "postcss": "8.4.32",
        "prettier": "^3.1.1",
        "prettier-plugin-svelte": "^3.1.2",
        "svelte": "^4.2.7",
        "tailwindcss": "3.3.6",
        "vite": "^5.0.3",
        "vite-plugin-tailwind-purgecss": "0.2.0"
    },
    "dependencies": {
        "@floating-ui/dom": "^1.5.3",
        "@prisma/client": "^5.7.0",
        "@supabase/ssr": "^0.0.10",
        "@supabase/supabase-js": "^2.39.0",
        "@sveltejs/adapter-node": "^2.0.2",
        "prisma": "^5.7.0"
    }
}

和 svelte.config.js:

import adapter from '@sveltejs/adapter-node';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';

/** @type {import('@sveltejs/kit').Config} */
const config = {
    extensions: ['.svelte'],
    preprocess: [vitePreprocess()],

    kit: {
        adapter: adapter()
    }
};
export default config;

如果有人能把我踢向正确的方向,那就太好了。几周前,它运行得很好,甚至在其他 VPS 上运行的旧项目,在新 VPS 上也会出现相同的错误,即使一切都是一样的。

我还使用演示应用程序创建了一个项目,以确保应用程序中没有任何错误。服务器上出现同样的错误。

node.js node-modules sveltekit sveltekit-adapter-node
1个回答
0
投票

我也遇到了同样的问题,可以在这里找到解决方案

简而言之,只需在 build/deployment 文件夹中创建一个 package.json 文件即可。

{
    "type": "module"
}

最好的,
兹索尔特

© www.soinside.com 2019 - 2024. All rights reserved.