我想在码头的巢里实施HMR。每次启动时,我都会遇到这样的错误:
/node_modules/enhanced-resolve/lib/Resolver.js:433
if (err) return callback(err);
^
RangeError: Maximum call stack size exceeded
at /node_modules/enhanced-resolve/lib/Resolver.js:433:5
at eval (eval at create (/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:27:1)
npm version
{
api: '0.0.1',
npm: '7.24.2',
node: '14.18.1',
}
我的Dockerfile:
RUN npm install -g npm@7
RUN npm cache clean --force
RUN npm install
RUN npm run build
package.json:
"dependencies": {
"@nestjs/common": "^9.0.0",
"@nestjs/config": "^2.2.0",
"@nestjs/core": "^9.0.0",
"@nestjs/jwt": "^9.0.0",
"@nestjs/mapped-types": "*",
"@nestjs/passport": "^9.0.0",
"@nestjs/platform-express": "^9.0.0",
"@nestjs/serve-static": "^3.0.0",
"@nestjs/typeorm": "^9.0.1",
"bcrypt": "^5.0.0",
"nestjs-typeorm-paginate": "^4.0.2",
"passport": "^0.6.0",
"passport-jwt": "^4.0.0",
"pg": "^8.6.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0",
"slugify": "^1.4.5",
"typeorm": "^0.3.10",
"uuid": "^9.0.0"
},
"devDependencies": {
"@nestjs/cli": "^9.1.5",
"@nestjs/schematics": "^9.0.3",
"@nestjs/testing": "^9.2.0",
"@types/express": "^4.17.13",
"@types/jest": "^28.1.8",
"@types/node": "^16.0.0",
"@types/passport-jwt": "^3.0.7",
"@types/supertest": "^2.0.11",
"@typescript-eslint/eslint-plugin": "^5.0.0",
"@typescript-eslint/parser": "^5.0.0",
"eslint": "^8.0.1",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"jest": "^28.0.1",
"prettier": "^2.3.2",
"run-script-webpack-plugin": "^0.1.0",
"source-map-support": "^0.5.20",
"supertest": "^6.1.3",
"ts-jest": "^28.0.8",
"ts-loader": "^9.2.3",
"ts-node": "^10.0.0",
"tsconfig-paths": "^4.1.0",
"typescript": "^4.9.3",
"webpack": "^5.75.0",
"webpack-node-externals": "^3.0.0"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"coverageDirectory": "../coverage",
"testEnvironment": "node"
},
"main": "index.js"
我已经尝试过删除node_modules并重新安装,以及Node和npm的不同版本。有什么想法吗?
发布于 2022-12-02 22:33:32
您遇到的“最大调用堆栈大小超过”错误通常是由具有无限递归函数调用的JavaScript或TypeScript程序引起的。在本例中,Resolver
模块中似乎发生了来自enhanced-resolve package
的错误。
造成此错误的一个潜在原因是enhanced-resolve
包在您的Docker映像中没有正确安装。如果使用的基本映像不包括运行Node.js应用程序所需的工具和依赖项,或者没有在Dockerfile中正确安装enhanced-resolve
包,则可能会发生这种情况。
要解决此问题,需要确保您的Docker映像包括node
和npm
包,并且enhanced-resolve
包已正确安装在您的Dockerfile中。下面是一个如何做到这一点的例子:
# Install Node.js and npm
RUN apt-get update && apt-get install -y nodejs npm
# Install the enhanced-resolve package
RUN npm install enhanced-resolve
这将确保在您的Docker映像中包含了必要的工具和依赖项,并且正确安装了enhanced-resolve
包。一旦更新了Dockerfile,您就可以重新生成Docker映像,并尝试再次运行应用程序,以查看错误是否仍然存在。
https://stackoverflow.com/questions/74664110
复制相似问题