angular / angular-cli

CLI tool for Angular
https://cli.angular.dev
MIT License
26.77k stars 11.98k forks source link

`TypeError: Cannot assign to read only property 'cflags' of object '#<Object>'` #27191

Closed GabrielBB closed 8 months ago

GabrielBB commented 8 months ago

Description

@angular/cli has a dependency on node-gyp as you can see here:

npm ls node-gyp
apps-backoffice@1.0.0 /home/gabriel/Documents/IdeaProjects/orit.bp.app-leila
└─┬ @angular/cli@17.1.0
  └─┬ pacote@17.0.5
    └─┬ @npmcli/run-script@7.0.3
      └── node-gyp@10.0.1

The problem is when I do npm install I get:

npm ERR! code 7
npm ERR! path /home/gabriel/.../node_modules/node-zopfli-es
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@7.1.0
npm ERR! gyp info using node@20.11.0 | linux | x64
npm ERR! gyp info find Python using Python version 3.11.6 found at "/usr/bin/python3"
npm ERR! gyp ERR! UNCAUGHT EXCEPTION 
npm ERR! gyp ERR! stack TypeError: Cannot assign to read only property 'cflags' of object '#<Object>'
npm ERR! gyp ERR! stack     at createConfigFile (/home/gabriel/.../node_modules/node-gyp/lib/configure.js:117:21)
npm ERR! gyp ERR! stack     at /home/gabriel/.../node_modules/node-gyp/lib/configure.js:84:9
npm ERR! gyp ERR! stack     at FSReqCallback.oncomplete (node:fs:191:23)
npm ERR! gyp ERR! System Linux 6.5.0-21-generic
npm ERR! gyp ERR! command "/home/gabriel/.nvm/versions/node/v20.11.0/bin/node" "/home/gabriel/.../node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /home/gabriel/.../node_modules/node-zopfli-es
npm ERR! gyp ERR! node -v v20.11.0
npm ERR! gyp ERR! node-gyp -v v7.1.0
npm ERR! gyp ERR! Node-gyp failed to build your package.
npm ERR! gyp ERR! Try to update npm and/or node-gyp and if it does not help file an issue with the package author.

Minimal Reproduction

npm install the following package.json using Node v20.11.0 :

{
  "name": "test",
  "version": "1.0.0",
  "engines": {
    "node": "^20"
  },
  "private": true,
  "dependencies": {
    "cheerio": "^1.0.0-rc.12",
    "@angular-devkit/architect": "~0.1702.1",
    "@angular-devkit/core": "~17.2.1",
    "@angular/animations": "~17.2.3",
    "@angular/cdk": "~17.2.1",
    "@angular/common": "~17.2.3",
    "@angular/compiler": "~17.2.3",
    "@angular/core": "~17.2.3",
    "@angular/forms": "~17.2.3",
    "@angular/material": "~17.2.1",
    "@angular/platform-browser": "~17.2.3",
    "@angular/platform-browser-dynamic": "~17.2.3",
    "@angular/router": "~17.2.3",
    "@elastic/ecs-winston-format": "~1.5.2",
    "bootstrap": "~4.5.3",
    "compression": "~1.7.4",
    "connect-redis": "^6.0.0",
    "cookie-parser": "~1.4.6",
    "d3": "^6.7.0",
    "express": "^4.18.2",
    "express-session": "^1.17.2",
    "file-saver": "^2.0.5",
    "google-libphonenumber": "^3.2.25",
    "got": "^11.8.2",
    "iban": "0.0.14",
    "ioredis": "^4.27.11",
    "jsonwebtoken": "~9.0.0",
    "lodash-es": "^4.17.21",
    "ngx-currency": "^17.0.0",
    "pluralize": "^8.0.0",
    "raw-loader": "^4.0.2",
    "rxjs": "^7.8.1",
    "shrink-ray-current": "^4.1.3",
    "simple-oauth2": "^3.4.0",
    "tslib": "^2.3.1",
    "uuid": "^8.3.2",
    "winston": "^3.3.3",
    "zone.js": "0.14.4"
  },
  "devDependencies": {
    "@dotenvx/dotenvx": "^0.19.1",
    "rimraf": "^3.0.2",
    "concurrently": "^8.2.2",
    "@angular/cli": "^17.2.1",
    "@angular/compiler-cli": "^17.2.3",
    "@angular-devkit/build-angular": "^17.2.1",
    "@angular-eslint/builder": "~17.2.1",
    "@angular-eslint/eslint-plugin": "~17.2.1",
    "@angular-eslint/eslint-plugin-template": "~17.2.1",
    "@angular-eslint/schematics": "~17.2.1",
    "@angular-eslint/template-parser": "~17.2.1",
    "@angular/language-service": "~17.2.3",
    "@types/compression": "^1.7.2",
    "@types/connect-redis": "0.0.17",
    "@types/cookie-parser": "^1.4.2",
    "@types/d3": "^6.7.8",
    "@types/express": "^4.17.21",
    "@types/express-session": "^1.17.10",
    "@types/file-saver": "^2.0.7",
    "@types/google-libphonenumber": "^7.4.30",
    "@types/iban": "0.0.35",
    "@types/ioredis": "^4.27.8",
    "@types/jasmine": "4.0.3",
    "@types/jasminewd2": "^2.0.13",
    "@types/jsonwebtoken": "^8.5.9",
    "@types/node": "18.19.19",
    "@types/pluralize": "0.0.33",
    "@types/prettier": "^2.4.1",
    "@types/simple-oauth2": "^2.5.8",
    "@types/supertest": "^2.0.16",
    "@types/uuid": "^8.3.4",
    "@typescript-eslint/eslint-plugin": "5.62.0",
    "@typescript-eslint/parser": "5.62.0",
    "codelyzer": "^6.0.2",
    "eslint": "^8.50.0",
    "eslint-config-prettier": "^8.10.0",
    "eslint-plugin-prettier": "^5.1.3",
    "husky": "^7.0.4",
    "jasmine-core": "4.6.0",
    "karma": "6.4.0",
    "karma-chrome-launcher": "~3.2.0",
    "karma-coverage": "^2.2.1",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "2.1.0",
    "karma-mocha-reporter": "^2.2.5",
    "lint-staged": "^11.2.6",
    "ng-mocks": "^14.2.0",
    "nock": "^13.1.3",
    "prettier": "^3.0.3",
    "supertest": "^6.3.4",
    "ts-loader": "^9.5.1",
    "ts-node": "10.9.2",
    "typescript": "5.3.3",
    "webpack": "^5.90.3",
    "webpack-cli": "^4.10.0"
  }
}

Your Environment

Cannot run `ng version` if I cannot do `npm install`

Anything else relevant?

System Details Report


Report details

Hardware Information:

Software Information:

alan-agius4 commented 8 months ago

Hello, we reviewed this issue and determined that it doesn't fall into the bug report or feature request category. This issue tracker is not suitable for support requests, please repost your issue on StackOverflow using tag angular-cli.

If you are wondering why we don't resolve support issues via the issue tracker, please check out this explanation.

GabrielBB commented 8 months ago

Turns out the problem was related to this dependency which seems to be abandoned: https://www.npmjs.com/package/shrink-ray-current . Removing solves the issue while doing npm install and it was not related to Angular CLI at all :)

angular-automatic-lock-bot[bot] commented 7 months ago

This issue has been automatically locked due to inactivity. Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.