Angular项目添加Firestore失败,提示找不到node:net模块
Angular项目添加Firestore时出现"Cannot find module 'node:net'"错误的解决方法
问题描述
尝试为Angular项目添加Firestore,执行ng add @angular/fire安装失败;改用ng add @angular/fire@latest成功安装包后,在向导中选择Firestore时触发以下错误:
The package @angular/fire@latest will be installed and executed. Would you like to proceed? Yes √ Packages successfully installed. UPDATE package.json (1231 bytes) √ Packages installed successfully. ? What features would you like to setup? ng deploy -- hosting √ firebase-tools installed globally. internal/modules/cjs/loader.js:883 throw err; ^ Error: Cannot find module 'node:net' Require stack: - C:\Users\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\portUtils.js - C:\Users\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\registry.js - C:\Users\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\controller.js - C:\Users\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\commandUtils.js - C:\Users\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\commands\database-get.js - C:\Users\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\commands\index.js - C:\Users\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\index.js - C:\Users\baumann\Desktop\markb.de\node_modules\@angular\fire\schematics\firebaseTools.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\baumann\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\portUtils.js:6:20) 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\\baumann\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\emulator\\portUtils.js', 'C:\\Users\\baumann\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\emulator\\registry.js', 'C:\\Users\\baumann\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\emulator\\controller.js', 'C:\\Users\\baumann\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\emulator\\commandUtils.js', 'C:\\Users\\baumann\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\commands\\database-get.js', 'C:\\Users\\baumann\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\commands\\index.js', 'C:\\Users\\baumann\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\index.js', 'C:\\Users\\baumann\\Desktop\\markb.de\\node_modules\\@angular\\fire\\schematics\\firebaseTools.js' ] }
环境信息
- Angular CLI: 14.1.3
- Node: 14.15.4
- Package Manager: npm 6.14.10
- OS: win32 x64
解决方法
方案1:降级firebase-tools到兼容Node.js 14的版本
错误根源是node:net这种带node:前缀的模块导入语法仅在Node.js 16及以上版本支持,而最新版firebase-tools已不再兼容Node.js 14。需要安装兼容的旧版本:
- 卸载全局的firebase-tools:
npm uninstall -g firebase-tools - 安装兼容Node.js 14的版本(比如11.25.0):
npm install -g firebase-tools@11.25.0 - 重新运行
ng add @angular/fire@latest,或手动完成Firestore的项目配置。
方案2:升级Node.js版本
直接将Node.js升级到16.x或更高的LTS版本(推荐16.20.x或18.x),升级完成后重新执行相关安装命令即可。
内容的提问来源于stack exchange,提问作者Mark Baumann
相关产品推荐
相关产品推荐

