NestJS创建新项目失败:无法找到node:fs模块求助
问题描述
我是NestJS新手,创建新项目时反复报错。当前环境版本:
- Node.js 14.15.3
- NestJS CLI 9.2.0
- npm 6.14.9
报错信息:
internal/modules/cjs/loader.js:883 throw err; ^ Error: Cannot find module 'node:fs' Require stack: - C:\Users\Personal-Pc\AppData\Roaming\npm\node_modules\@nestjs\cli\node_modules\@angular-devkit\core\node\host.js - C:\Users\Personal-Pc\AppData\Roaming\npm\node_modules\@nestjs\cli\node_modules\@angular-devkit\core\node\index.js - C:\Users\Personal-Pc\AppData\Roaming\npm\node_modules\@nestjs\cli\node_modules\@angular-devkit\schematics-cli\bin\schematics.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15) at Function.Module._load (internal/modules/cjs/loader.js:725:27) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Object.<anonymous> (C:\Users\Personal-Pc\AppData\Roaming\npm\node_modules\@nestjs\cli\node_modules\@angular-devkit\core\node\host.js:11:19) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Module.require (internal/modules/cjs/loader.js:952:19) { code: 'MODULE_NOT_FOUND', requireStack: [ 'C:\\Users\\Personal-Pc\\AppData\\Roaming\\npm\\node_modules\\@nestjs\\cli\\node_modules\\@angular-devkit\\core\\node\\host.js', 'C:\\Users\\Personal-Pc\\AppData\\Roaming\\npm\\node_modules\\@nestjs\\cli\\node_modules\\@angular-devkit\\core\\node\\index.js', 'C:\\Users\\Personal-Pc\\AppData\\Roaming\\npm\\node_modules\\@nestjs\\cli\\node_modules\\@angular-devkit\\schematics-cli\\bin\\schematics.js' ] } Failed to execute command: node @nestjs/schematics:application --name=demo --directory=undefined --no-dry-run --no-skip-git --no-strict --package-manager="npm" --collection="@nestjs/schematics" --language="ts"
已尝试操作:
npm cache clean --force npm uninstall -g @nestjs/cli npm i -g @nestjs/cli npm i -g @nestjs/schematics nest new demo
也试过npx @nestjs/cli new demo,但依然报错。
解决方案
这个报错的核心原因是Node.js 14.15.3不支持node:前缀的模块导入语法,而NestJS CLI 9.x依赖的@angular-devkit库使用了该语法,导致无法找到node:fs模块。
有两种可行的解决方式:
方式一:升级Node.js版本
Node.js从v14.18.0开始正式支持node:前缀的核心模块导入。操作步骤:
- 下载并安装Node.js v14.18.0或更高版本(推荐LTS版本,比如v16.x或v18.x)
- 运行
node -v验证版本已更新 - 重新执行
nest new demo创建项目
方式二:降级NestJS CLI到兼容Node 14的版本
如果暂时无法升级Node.js,可以安装NestJS CLI 8.x版本(该版本依赖的@angular-devkit未使用node:前缀语法):
npm uninstall -g @nestjs/cli npm install -g @nestjs/cli@8.x
安装完成后再执行nest new demo即可正常创建项目。
内容的提问来源于stack exchange,提问作者Parikshit Bhardwaj
相关产品推荐
相关产品推荐

