skip to Main Content

I have a jenkins job that runs on a centos 7 container.
Once the container is up the jenkins job runs a script that
executes

 npm install -g @angular/cli

This has worked for about an year but today it started failing:

 /usr/bin/ng -> /usr/lib/node_modules/@angular/cli/bin/ng
 > @angular/[email protected] postinstall /usr/lib/node_modules/@angular/cli
 > node ./bin/postinstall/script.js
 /usr/lib/node_modules/@angular/cli/bin/postinstall/analytics-prompt.js:8
 (async () => {
 ^
 SyntaxError: Unexpected token (
 at createScript (vm.js:56:10)
 at Object.runInThisContext (vm.js:97:10)
 at Module._compile (module.js:549:28)
 at Object.Module._extensions..js (module.js:586:10)
 at Module.load (module.js:494:32)
 at tryModuleLoad (module.js:453:12)
 at Function.Module._load (module.js:445:3)
 at Module.require (module.js:504:17)
 at require (internal/module.js:20:19)
 at Object.<anonymous> (/usr/lib/node_modules/@angular/cli/bin/postinstall/script.js:5:1)
 npm ERR! Linux 3.10.0-957.1.3.el7.x86_64
 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "-g" "@angular/cli"
 npm ERR! node v6.16.0
 npm ERR! npm  v3.10.10
 npm ERR! code ELIFECYCLE
 npm ERR! @angular/[email protected] postinstall: `node ./bin/postinstall/script.js`
 npm ERR! Exit status 1
 npm ERR!
 npm ERR! Failed at the @angular/[email protected] postinstall script 'node ./bin/postinstall/script.js'.
 npm ERR! Make sure you have the latest version of node.js and npm installed.
 npm ERR! If you do, this is most likely a problem with the @angular/cli package,
 npm ERR! not with npm itself.
 npm ERR! Tell the author that this fails on your system:
 npm ERR!     node ./bin/postinstall/script.js
 npm ERR! You can get information on how to open an issue for this project with:
 npm ERR!     npm bugs @angular/cli
 npm ERR! Or if that isn't available, you can get their info via:
 npm ERR!     npm owner ls @angular/cli
 npm ERR! There is likely additional logging output above.
 npm ERR! Please include the following file with any support request:
 npm ERR!     /app/capman-fe/npm-debug.log

My packages.json is this:

{
  "name": "pman-fe",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
... omitted for brevity ...
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.6.8",
    "@angular/cli": "^6.0.8",
    "@angular/compiler-cli": "^6.0.3",
    "@angular/language-service": "^6.0.3",
    "@types/d3": "^5.7.1",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.2.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.0",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "^5.4.1",
    "ts-node": "~5.0.1",
    "tslint": "~5.9.1",
    "typescript": "~2.7.2"
  }
}

3

Answers


  1. Chosen as BEST ANSWER

    I was able to solve this error. The problem was that when I installed npm I simply executed: yum -y install npm. I guess the yum repo that the container I have to use doesn't have an up to date copy of the npm rpm. So I changed how I install npm. Now I do this:

    yum install -y gcc-c++ make
    curl -sL https://rpm.nodesource.com/setup_10.x | bash -
    yum -y install nodejs
    node -v
    npm -v
    npm install -g @angular/cli
    

    as per https://tecadmin.net/install-latest-nodejs-and-npm-on-centos/


  2. replace

    npm install -g @angular/cli
    

    on

    npm install -g @angular/cli@~8.0.0
    

    current 8.0.4 version @angular/cli bug with dependency

    use ~8.0.0 or less (Ideal for version to match with package.json)

    Login or Signup to reply.
  3. I just encountered the same error on Windows: turns out I had a super old version (v.6.11.0) of Node, so I would just try updating the local version of Node on your centos machine (or whatever environment you are on). Note this will also update your version of npm (most likely).

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search