【发布时间】:2021-07-09 08:31:17
【问题描述】:
通过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');
错误持续存在。想法?
【问题讨论】:
标签: node.js ecmascript-6 sveltekit