Search code examples
angularjenkinsnpmnode-modulesprimeng

Error: error:0308010C:digital envelope routines::unsupported [ANGULAR]


I was trying to build my project on jenkins. The local build is successful but Jenkins build is failing. Any fix for this? I am using primeng module to implement p-organisationchart. I suspect that could be the issue.

versions I am using are:

`"primeicons": "^4.1.0",
 "primeng": "^11.3.0",
 "node" : 14.16.0`

I am working on Angular 8


Solution

  • This is a webpack issue. As a workaround you can add an environment variable to your build task:

    export NODE_OPTIONS=--openssl-legacy-provider
    

    See this issue in the webpack project.

    You can add the environment variable to your package.json scripts part

    {
      "scripts": {
        "build": "export NODE_OPTIONS=--openssl-legacy-provider; ng build"
      }
    }
    

    If you are using docker you can add the environment variable to your Docker file before the build

    ENV NODE_OPTIONS=--openssl-legacy-provider
    

    I am not familiar with jenkins. If you use bash-like scripts there to build your application you can also add the line to that script.

    Note: In windows use set instead of export


    As mentioned in the comments this solution shouldn't be used for solving this error in production environments as it is deactivating a security fix in ssl.

    But for a build pipeline (which was the problem domain in this case) it is still a viable solution in my opinion.