You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js 14环境下替换Svelte-Kit代码中的??=运算符问题

解决Node.js 14下??=运算符的语法错误问题

直接替换代码

??=是空值赋值运算符(ES2022特性),Node.js 14不支持该语法,你可以将原代码替换为等价的兼容写法:

写法一(可读性更强)

const component = async () => {
  // 当component_cache为null或undefined时赋值
  if (component_cache == null) {
    component_cache = (await import('./layout.svelte-32c85b96.mjs')).default;
  }
  return component_cache;
};

写法二(简洁版)

const component = async () => component_cache = component_cache ?? (await import('./layout.svelte-32c85b96.mjs')).default;

避免手动修改的长期方案

如果这段代码是Svelte-Kit构建自动生成的,手动修改会在下次构建后被覆盖,建议调整Svelte-Kit的构建配置,让它输出兼容Node.js 14的代码:

  • 在svelte.config.js中,修改Vite的构建目标:
    import adapter from '@sveltejs/adapter-node';
    
    export default {
      kit: {
        adapter: adapter(),
        vite: {
          build: {
            target: 'node14'
          }
        }
      }
    };
    
    这样Vite会自动将ES2022特性转译为Node.js 14支持的语法,无需手动修改生成文件。

内容的提问来源于stack exchange,提问作者codingtuba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 11:47:39