通过导出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.js
为index.mjs
"type": "module"
在 package.json 中(现在是默认设置)require
像这样在配置中导入
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const adapter = require('@sveltejs/adapter-static');
错误持续存在。想法?