NodeJS jfrog npm生成失败

yvt65v4c  于 2023-01-20  发布在  Node.js
关注(0)|答案(1)|浏览(411)

我们有nodejs应用程序,通过使用angular npm build,我们正在使用Azuredevops管道构建它。下面是ADO任务中的构建脚本。

- bash: |
         set -e
         node --version
         npm --version
       
         echo "npm cache location"
         npm config get cache
       
         echo "cleaning up workspace"
         rm -rf .angular
         rm -rf build
         rm -rf dist
   
         echo "Installing angular/cli"
         jf  npm install -g --prefer-offline --audit=false --no-audit
         if [[ "${{ parameters.cleanBuild }}" == "True" ]]; then
           echo "Running npm ci"
           jf npm ci --prefer-offline --audit=false --no-audit
         else
           echo "Running npm install"
           jf npm install --prefer-offline --audit=false --no-audit
         fi
         echo "Running npm lint:"
         npm run lint$subProject
         echo "Running npm build:"
         npm run build$subProject
         echo "Running npm test:"
         npm run test$subProject
  displayName: 'Build and test project'

现在,我们计划启用Jfrog Xray扫描构建,并在Jfrog cli中查找上面给出的命令的确切替换。
我们尝试了多个选项,但均因命令错误而失败。
我们使用的是jfrogcli v2。
误差

11:11:45 [Warn] npm list command failed with error: error while running the command :'/node/16.14.2/x64/bin/npm ls --prefer-offline --audit=false --no-audit --threads=1 --json --all --long'
Error output is:
npm ERR! code ELSPROBLEMS
npm ERR! invalid: @angular/common@13.3.0 node_modules/@angular/common
npm ERR! invalid: @angular/core@13.3.0 node_modules/@angular/core
npm ERR! invalid: @angular/compiler-cli@13.3.0 node_modules/@angular/compiler-cli
npm ERR! invalid: @angular/compiler@13.3.0 node_modules/@angular/compiler

    {
      "error": {
        "code": "ELSPROBLEMS",
        "summary": "invalid: @angular/common@13.3.0 node_modules/@angular/common\ninvalid: @angular/core@13.3.0 node_modules/@angular/core\ninvalid: @angular/compiler-cli@13.3.0 node_modules/@angular/compiler-cli\ninvalid: @angular/compiler@13.3.0 node_modules/@angular/compiler",
        "detail": ""
      }
    }
mqkwyuun

mqkwyuun1#

看起来是脚本中的jf npm list命令导致了这个错误。npm ls命令用于列出项目中已安装的包,但它似乎不是构建过程所必需的。
您可以使用jfrog rt npm-install命令来安装来自JFrog Artifactory的npm包,而不是jf npm list。此命令将解析来自Artifactory的npm包并将其安装到您的项目中。
下面是如何在脚本中使用jfrog rt npm-install命令的示例:
jfrog rt npm安装--内部版本名称= --内部版本编号=
您需要将和替换为实际的内部版本名称和编号。
您还可以使用jfrog rt npm ci从JFrog Artifactory安装npm包,也可以从package-lock.json安装这些包。
下面是如何在脚本中使用jfrog rt npm ci命令的示例:jfrog实时npm ci --内部版本名称= --内部版本编号=
您需要将和替换为实际的内部版本名称和编号。
您可能还需要配置.npmrc文件以指向JFrog Artifactory示例,以便jfrog rt npm-install和jfrog rt npm ci命令可以从那里解析包。
之后,您可以使用jfrog rt npm-scan命令,使用JFrog Xray扫描从JFrog Artifactory下载的npm包中的漏洞。
下面是一个示例,说明如何在脚本中使用jfrog rt npm-scan命令jfrog rt npm-scan --build-name= --build-number=您需要用实际的构建名称和编号替换和。
请注意,CLI版本2不再受支持,您应该升级到最新版本的JFrog CLI。

相关问题