首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >码头NPM最大呼叫堆栈大小超过

码头NPM最大呼叫堆栈大小超过
EN

Stack Overflow用户
提问于 2022-12-03 04:58:07
回答 1查看 21关注 0票数 0

我想在码头的巢里实施HMR。每次启动时,我都会遇到这样的错误:

代码语言:javascript
代码运行次数:0
运行
复制
/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)
代码语言:javascript
代码运行次数:0
运行
复制
    npm version
    {
      api: '0.0.1',
      npm: '7.24.2',
      node: '14.18.1',
    }

我的Dockerfile:

代码语言:javascript
代码运行次数:0
运行
复制
RUN npm install -g npm@7
RUN npm cache clean --force
RUN npm install
RUN npm run build

package.json:

代码语言:javascript
代码运行次数:0
运行
复制
"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的不同版本。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-12-03 06:33:32

您遇到的“最大调用堆栈大小超过”错误通常是由具有无限递归函数调用的JavaScript或TypeScript程序引起的。在本例中,Resolver模块中似乎发生了来自enhanced-resolve package的错误。

造成此错误的一个潜在原因是enhanced-resolve包在您的Docker映像中没有正确安装。如果使用的基本映像不包括运行Node.js应用程序所需的工具和依赖项,或者没有在Dockerfile中正确安装enhanced-resolve包,则可能会发生这种情况。

要解决此问题,需要确保您的Docker映像包括nodenpm包,并且enhanced-resolve包已正确安装在您的Dockerfile中。下面是一个如何做到这一点的例子:

代码语言:javascript
代码运行次数:0
运行
复制
# 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映像,并尝试再次运行应用程序,以查看错误是否仍然存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74664110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档