angular - 发生未处理的异常 : The requested module 'sourcemap-codec' does not provide an export named 'decode'

标签 angular source-maps angular-upgrade angular13

在升级到 angular 13 时,我在管道上的构建步骤失败。我的初始版本是 11,在升级到 12 时构建工作正常,但在从 12 升级到 13 时,它开始在管道上给我这个错误。构建在本地运行良好但在管道上失败。

我还添加了 package.json 文件代码和依赖项,还添加了显示错误的图像。

[![{
  "name": "app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "start:prod": "ng serve -c production",
    "start:local": "ng serve -c local",
    "start:test": "ng serve -c local,test",
    "start:ci": "serve -s --no-clipboard --listen ${PORT:-4200} ",
    "build": "ng build",
    "updateVersion": "node ./updateVersion.js",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage --ci",
    "lint": "eslint src --ext .js,.ts,.html",
    "lint:fix": "npm run lint -- --fix",
    "e2e": "ng e2e",
    "e2e:prod": "ng e2e --headless --configuration production",
    "e2e:parallel": "npx cy2 run --record --key gitlab-ci --parallel --ci-build-id 1",
    "cypress:open": "cypress open",
    "cypress:run": "cypress run"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^13.2.5",
    "@angular/cdk": "^13.2.4",
    "@angular/common": "^13.2.5",
    "@angular/compiler": "^13.2.5",
    "@angular/core": "^13.2.5",
    "@angular/flex-layout": "^11.0.0-beta.33",
    "@angular/forms": "^13.2.5",
    "@angular/localize": "^13.2.5",
    "@angular/material": "^13.2.4",
    "@angular/material-moment-adapter": "^13.2.4",
    "@angular/platform-browser": "^13.2.5",
    "@angular/platform-browser-dynamic": "^13.2.5",
    "@angular/router": "^13.2.5",
    "@mat-datetimepicker/core": "^6.0.2",
    "@ngrx/effects": "^11.1.1",
    "@ngrx/entity": "^11.1.1",
    "@ngrx/router-store": "^11.1.1",
    "@ngrx/store": "^11.1.1",
    "@ngrx/store-devtools": "^11.1.1",
    "@ngx-translate/core": "^13.0.0",
    "@ngx-translate/http-loader": "^4.0.0",
    "cypress-get-table": "^1.0.1",
    "faker": "^4.1.0",
    "font-awesome": "^4.7.0",
    "moment": "^2.29.1",
    "ngrx-forms": "^6.3.4",
    "ngrx-store-localstorage": "^11.0.0",
    "ngx-infinite-scroll": "^10.0.1",
    "ngx-material-timepicker": "^5.5.3",
    "ngx-skeleton-loader": "^4.0.0",
    "normalize.css": "^8.0.1",
    "path-browserify": "^1.0.1",
    "rxjs": "^6.6.3",
    "tsify": "^5.0.2",
    "tslib": "^2.2.0",
    "yargs-parser": "^18.1.3",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-builders/jest": "^9.0.1",
    "@angular-devkit/architect": "^0.1302.5",
    "@angular-devkit/build-angular": "^13.2.5",
    "@angular-eslint/builder": "^13.1.0",
    "@angular-eslint/eslint-plugin": "^13.1.0",
    "@angular-eslint/eslint-plugin-template": "^13.1.0",
    "@angular-eslint/schematics": "13.1.0",
    "@angular-eslint/template-parser": "^13.1.0",
    "@angular/cli": "^13.2.5",
    "@angular/compiler-cli": "^13.2.5",
    "@angular/language-service": "~13.2.5",
    "@commitlint/cli": "^15.0.0",
    "@commitlint/config-conventional": "^15.0.0",
    "@cypress/browserify-preprocessor": "^3.0.1",
    "@ngrx/schematics": "^10.1.2",
    "@nrwl/cypress": "^12.4.0",
    "@types/chai": "^4.2.15",
    "@types/chai-as-promised": "^7.1.3",
    "@types/cypress-cucumber-preprocessor": "^4.0.0",
    "@types/faker": "^5.1.7",
    "@types/jest": "^25.2.3",
    "@types/node": "^12.19.14",
    "@typescript-eslint/eslint-plugin": "5.3.0",
    "@typescript-eslint/parser": "5.3.0",
    "axe-core": "^4.2.3",
    "chai": "^4.3.0",
    "chai-as-promised": "^7.1.1",
    "commitlint": "^15.0.0",
    "cucumber": "^6.0.5",
    "cy2": "^1.2.1",
    "cypress": "7.6.0",
    "cypress-axe-core": "^1.1.3",
    "cypress-cucumber-preprocessor": "^4.2.0",
    "cypress-fail-on-console-error": "^2.1.0",
    "cypress-multi-reporters": "^1.4.0",
    "cypress-pipe": "^2.0.0",
    "cypress-terminal-report": "^3.2.2",
    "eslint": "^8.10.0",
    "eslint-config-prettier": "^7.2.0",
    "eslint-plugin-import": "2.25.2",
    "eslint-plugin-jsdoc": "30.7.6",
    "eslint-plugin-prefer-arrow": "1.2.2",
    "eslint-plugin-prettier": "^3.3.1",
    "eslint-plugin-sonarjs": "^0.6.0",
    "glob": "^7.1.6",
    "husky": "^4.3.8",
    "jasmine-marbles": "^0.8.1",
    "jest": "^26.6.3",
    "jest-fail-on-console": "^2.0.4",
    "jest-junit": "^12.0.0",
    "jest-preset-angular": "8.4.0",
    "jest-sonar-reporter": "^2.0.0",
    "lint-staged": "^10.5.4",
    "mocha": "^8.3.2",
    "mocha-junit-reporter": "^2.0.0",
    "mochawesome": "^6.2.2",
    "multiple-cucumber-html-reporter": "^1.18.0",
    "ng-cache-testing-module": "^1.1.3",
    "prettier": "2.2.1",
    "replace-in-file": "^6.3.2",
    "serve": "^11.3.2",
    "source-map": "^0.6.1",
    "ts-jest": "^26.5.4",
    "ts-node": "~8.3.0",
    "typescript": "^4.4.4"
  },
  "jestSonar": {
    "reportPath": "output/coverage/jest",
    "reportFile": "test-report.xml"
  },
  "jest": {
    "preset": "jest-preset-angular",
    "testEnvironment": "jsdom",
    "resetMocks": false,
    "setupFilesAfterEnv": \[
      "<rootDir>/setupJest.ts",
      "jest-localstorage-mock"
    \],
    "testPathIgnorePatterns": \[
      "<rootDir>/node_modules/",
      "<rootDir>/dist/",
      "<rootDir>/src/test.ts"
    \],
    "moduleNameMapper": {
      "@/(.*)": "<rootDir>/src/$1",
      "@core/(.*)": "<rootDir>/src/app/core/$1",
      "@material/(.*)": "<rootDir>/src/app/material/$1",
      "@features/(.*)": "<rootDir>/src/app/features/$1",
      "@testing/(.*)": "<rootDir>/src/testing/$1",
      "@shared/(.*)": "<rootDir>/src/app/shared/$1",
      "@environments/(.*)": "<rootDir>/src/environments/$1"
    },
    "globals": {
      "ts-jest": {
        "tsConfig": "<rootDir>/tsconfig.spec.json",
        "stringifyContentPathRegex": "\\.html$",
        "astTransformers": \[
          "<rootDir>/node_modules/jest-preset-angular/InlineHtmlStripStylesTransformer"
        \]
      }
    }
  },
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E  HUSKY_GIT_PARAMS",
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{js,ts,html}": "eslint --cache --fix"
  },
  "cypress-cucumber-preprocessor": {
    "nonGlobalStepDefinitions": true,
    "stepDefinitions": "./e2e/features/",
    "cucumberJson": {
      "generate": true,
      "outputFolder": "output/cucumber-json",
      "filePrefix": "",
      "fileSuffix": ".cucumber"
    }
  },
  "jest-junit": {
    "outputDirectory": "output",
    "outputName": "junit.xml"
  }
}][1]][1]

sourcemap-codec 最新版本是 1.4.8,它作为依赖项自动添加到 package.lock 文件中,但它仍然只在管道上失败,在我的本地工作正常。

最佳答案

我遇到了同样的问题,这就是我偶然发现这篇文章的原因。

我的问题是我使用了错误的节点版本。 升级到 Angular 13 后我遇到了类似的问题,但我使用的是节点版本 v14.2.0.

enter image description here

我将节点版本更改为 v14.15.0 并且它有效。

nvm 使用 v14.15.0

附言:NVM管理多个 nodejs 版本。

关于angular - 发生未处理的异常 : The requested module 'sourcemap-codec' does not provide an export named 'decode' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71331825/

相关文章:

angularjs - 无法让 AngularJS 服务在 Angular 中运行

升级到 Angular 8.3.5 后,Angular 应用程序不加载应用程序模块/组件

angularjs - Angular NgUpgrade 将 AngularJS 服务注入(inject) Angular 服务;获取 : Unhandled Promise rejection: Cannot read property 'get' of undefined ; Zone:

javascript - 如何获取源映射文件以输出到我的构建文件夹?

javascript - 使用纯 JavaScript 渲染这些 Angular2 组件

Angular 4 构建错误 : Error encountered resolving symbol values statically

html - 带跨度的 PrimeNG 下拉菜单

Angular-cli 和 Ckeditor4 自定义构建

typescript - 语法错误 : 'import' and 'export' may appear only with 'sourceType: module' in Gulp + Babel + TypeScript + Source Maps

typescript - Webpack 4 加载库 Sourcemap