1

通过导出npm run build

使用标准 SvelteKit 演示应用程序进行测试,并像往常一样在配置中添加适配器节点:

import adapter from '@sveltejs/adapter-node'

const config = {
    kit: {
        // hydrate the <div id="svelte"> element in src/app.html
        target: '#svelte',
        adapter: adapter()
    }
};

export default config;

在撰写本文时使用最新版本:

  • SvelteKit v1.0.0-next.123
  • 适配器节点 v1.0.0-next.32。

node index.js 在本地工作在生产中失败

(node:16609) 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)
/[...]/build/index.js:40
import { createRequire } from "module";
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1025:15)
    at Module._compile (node:internal/modules/cjs/loader:1059:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1124:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:816:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
    at node:internal/main/run_main_module:17:47```

服务器正在运行最新的 NodeJS (v16.4.2)。

我试过的

  • 将构建重命名index.jsindex.mjs
  • "type": "module"在 package.json 中(现在是默认设置)
  • require像这样在配置中导入
import { createRequire } from 'module';
const require = createRequire(import.meta.url);

const adapter = require('@sveltejs/adapter-static');

错误持续存在。想法?

4

1 回答 1

0

解决方案 node_modules 之前没有正确安装。必须确保npm install在服务器上正确完成。万一这对某人有帮助……</p>

于 2021-07-09T17:14:50.573 回答