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

NestJS导入模块失败:添加模块后触发语法错误

问题

在NestJS项目中,将MoviesModule、SearchModule或ConfigModule任意一个添加到AppModule的imports数组后,项目运行报错。核心错误为SyntaxError: Unexpected token '??=',同时伴随进程查找失败提示。

相关代码

import { CategoryService } from './../category/category.service';

import { Module } from '@nestjs/common';
import { DatabaseModule } from './../database/database.module';

import { AppController } from './app.controller';
import { AppService } from './app.service';

import { MoviesModule } from '../movies/movies.module';
import { ConfigModule } from '@nestjs/config';
import { SearchModule } from '../search/search.module';

import { PostController } from '../post/post.controller';
import { PostService } from '../post/post.service';
import { CategoryController } from '../category/category.controller';

@Module({
  imports: [
    DatabaseModule, MoviesModule // 添加此处后出现错误
  ],
  controllers: [AppController, PostController, CategoryController],
  providers: [AppService, PostService, CategoryService],
})
export class AppModule { }

错误日志

Command failed: taskkill /pid 27448 /T /F
ERROR: The process "27448" not found.

Debugger listening on ws://localhost:9229/7e3b0f6b-4b30-48d8-95cf-8dd5e9865436
Debugger listening on ws://localhost:9229/7e3b0f6b-4b30-48d8-95cf-8dd5e9865436
For help, see: https://nodejs.org/en/docs/inspector
D:\projects\my-apps\interview-prep\dist\apps\backend\main.js:65501
    cookieAttributeList.unparsed ??= []
                                 ^^^

SyntaxError: Unexpected token '??='
    at wrapSafe (internal/modules/cjs/loader.js:1001:16)
    at Module._compile (internal/modules/cjs/loader.js:1049:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.Module._load (D:\projects\my-apps\interview-prep\node_modules\.pnpm\@nrwl+js@15.8.6_dy3bcy5rzsznsjo6teutqltnt4\packages\js\src\executors\node\node-with-require-overrides.ts:16:27)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:101:18)
    at Object.<anonymous> (D:\projects\my-apps\interview-prep\node_modules\.pnpm\@nrwl+js@15.8.6_dy3bcy5rzsznsjo6teutqltnt4\packages\js\src\executors\node\node-with-require-overrides.ts:20:1)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)

解决方案

1. 升级Node.js版本

??=是空值赋值运算符,仅在Node.js v15.0.0及以上版本支持。当前使用的Node.js版本过低,无法解析该语法:

  • 执行node -v查看当前版本
  • 升级到v15+版本(推荐LTS版本,比如v16或v18)

2. 修正TypeScript编译配置

确保tsconfig.json的编译目标版本足够高,让TypeScript将新语法转译为当前Node.js可识别的代码:

{
  "compilerOptions": {
    "target": "ES2020" // 或ES2021、ESNext等更高版本
    // 其他配置项...
  }
}

3. 清理缓存并重新构建

  • 删除编译产物目录:Windows执行rd /s /q dist,Mac/Linux执行rm -rf dist
  • 清理包管理缓存:pnpm执行pnpm cache clean,npm执行npm cache clean --force
  • 重新安装依赖:pnpm install或npm install
  • 重新编译项目:pnpm build或npm run build

4. 关于进程查找失败提示

这个是开发工具尝试终止旧进程时找不到对应PID导致的次要问题,解决核心语法错误后,重启项目时该提示通常会自动消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:12:46