错误 [ERR_REQUIRE_ESM]:ES 模块的 require(),不支持 node_modules\wrap-ansi\index.js

Ald*_*jal 10 javascript node.js nestjs

在 Nestjs 项目中,我遇到了一个库的问题,我没有在代码中直接使用它,但它被第三方使用。

node_modules\wrap-ansi\index.js:2 中的 stringWidth = require('string-width') 不支持

这是 package.json 依赖项:

"dependencies": {
    "@nestjs-modules/mailer": "^1.9.1",
    "@nestjs/common": "^10.1.2",
    "@nestjs/config": "^3.0.0",
    "@nestjs/core": "^10.1.2",
    "@nestjs/event-emitter": "^2.0.2",
    "@nestjs/jwt": "^10.0.3",
    "@nestjs/mapped-types": "^2.0.2",
    "@nestjs/passport": "^10.0.0",
    "@nestjs/platform-express": "^10.1.2",
    "@nestjs/swagger": "^7.1.4",
    "@nestjs/throttler": "^4.0.0",
    "@nestjs/typeorm": "^10.0.0",
    "@ttshivers/automapper-classes": "^8.8.3",
    "@ttshivers/automapper-core": "^8.8.3",
    "@ttshivers/automapper-nestjs": "^8.8.3",
    "bcrypt": "^5.1.0",
    "class-transformer": "^0.5.1",
    "class-validator": "^0.14.0",
    "handlebars": "^4.7.8",
    "nodemailer": "^6.9.7",
    "passport": "^0.6.0",
    "passport-custom": "^1.1.1",
    "passport-jwt": "^4.0.1",
    "passport-local": "^1.0.0",
    "pg": "^8.11.0",
    "reflect-metadata": "^0.1.13",
    "rxjs": "^7.2.0",
    "typeorm": "^0.3.16"
  },
  "devDependencies": {
    "@nestjs/cli": "^10.1.11",
    "@nestjs/schematics": "^10.0.1",
    "@nestjs/testing": "^10.1.2",
    "@types/bcrypt": "^5.0.0",
    "@types/express": "^4.17.13",
    "@types/jest": "29.5.3",
    "@types/node": "20.4.5",
    "@types/nodemailer": "^6.4.13",
    "@types/passport-jwt": "^3.0.8",
    "@types/passport-local": "^1.0.35",
    "@types/supertest": "^2.0.11",
    "@typescript-eslint/eslint-plugin": "^6.2.0",
    "@typescript-eslint/parser": "^6.2.0",
    "eslint": "^8.0.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-prettier": "^5.0.0",
    "jest": "29.6.2",
    "prettier": "^3.0.0",
    "source-map-support": "^0.5.20",
    "supertest": "^6.1.3",
    "ts-jest": "29.1.1",
    "ts-loader": "^9.2.3",
    "ts-node": "^10.0.0",
    "tsconfig-paths": "4.2.0",
    "typescript": "^5.1.6",
    "vite": "^4.4.7"
  },
  "jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "ts"
    ],
    "rootDir": "src",
    "testRegex": ".*\\.spec\\.ts$",
    "transform": {
      "^.+\\.(t|j)s$": "ts-jest"
    },
    "collectCoverageFrom": [
      "**/*.(t|j)s"
    ],
    "coverageDirectory": "../coverage",
    "testEnvironment": "node",
    "moduleNameMapper": {
      "@application/(.*)": "<rootDir>/application/$1",
      "@domain/(.*)": "<rootDir>/domain/$1",
      "@infrastructure/(.*)": "<rootDir>/infrastructure/$1"
    }
  }
Run Code Online (Sandbox Code Playgroud)

当我注意到这个问题时,我安装的最新软件包是:

@nestjs-modules/mailer
nodemailer
handlebars
@types/nodemailer
Run Code Online (Sandbox Code Playgroud)

我运行任何嵌套命令面临的问题是:

此处错误的堆栈跟踪

基于类似的帖子,这里这里,我尝试在 package.json 中添加 "type": "module" 但没有成功。另外,我删除了node_modules并重新安装了包(yarn),这就是我得到的:

在此输入图像描述

相同的错误:var stringWidth = require('string-width')但在不同的文件中:node_modules\wide-align\align.js:2

感谢您的帮助

Mat*_*hew 21

我有同样的问题,这帮助我解决了这个问题

将其添加到您的 package.json 文件中

"resolutions": {
  "wrap-ansi": "7.0.0",
  "string-width": "4.1.0"
}
Run Code Online (Sandbox Code Playgroud)


小智 11

将系统升级到 macOS Sonoma 14.2.1 后,我遇到了同样的问题。

我的解决方案是:

删除yarn.lock 文件并再次安装yarn 解决了该问题。