执行 npm run sonarqube-scanner-node 命令时出错

问题描述 投票:0回答:2

在cmd中执行npm run sonarqube-scanner-node命令时出错

E:...>npm run sonarqube-scanner-node

[17:04:46] Executing sonarqube-scanner ...
node_modules\sonarqube-scanner-node\dist\sonar-scanner-3.0.3.778\bin\sonar-scann
er.bat
child_process.js:504
throw err;
^

Error: spawnSync ...\git\zara-cargo-mobile\node_modules\sonarqube
-scanner-node\dist\sonar-scanner-3.0.3.778\bin\sonar-scanner.bat ENOENT
at exports._errnoException (util.js:1018:11)
at spawnSync (child_process.js:459:20)
at execFileSync (child_process.js:496:13)
at Object. (...\git\zara-cargo-mobile\node_modules
\sonarqube-scanner-node\src\index.js:18:1)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\
node_modules\npm\bin\npm-cli.js" "run" "sonarqube"
npm ERR! node v6.11.0
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE

我还从 https://www.npmjs.com/package/sonarqube-scanner-node 在浏览器中测试 sonarqube-scanner-node 。它也不起作用。

Error Stack Trace Viewer
Error: spawnSync /app/available_modules/1500637668000/sonarqube-scanner-node/dist/sonar-scanner-3.0.3.778/bin/sonar-scanner ENOENT
at util._errnoException in core util.js — line 1022
at child_process.spawnSync in core child_process.js — line 461
at child_process.execFileSync in core child_process.js — line 498
in sonarqube-scanner-node/src/index.js — line 18
node.js startup…

请帮我解决这个问题。

node.js npm webpack sonarqube
2个回答
1
投票

我使用了声纳扫描仪包并点击链接https://www.npmjs.com/package/sonar-scanner

我在package.json中传递了sonar-scanner.bat的完整路径(显示在正确的代码部分)并成功运行。

错误代码:(如文档所示)

{
  "scripts": {
    "sonar-scanner": "node_modules/sonar-scanner/bin/sonar-scanner"
  }
}

正确代码:

 {
      "scripts": {
        "sonar-scanner": "node_modules/sonar-scanner/bin/sonar-scanner.bat"
      }
    }

0
投票

//.env

SONAR_TOKEN: '3332a46a695b3dd98a030e9022d3bfd93'

// package.json:

"scripts": {
  "myscript1": "node myscript-cmd --cmd_name=script1",
  "myscript2": "node myscript-cmd --cmd_name=script2"
},

// myscript-cmd.js(放置在项目目录的根目录下)

// accessing the value of 'cmd_var' passed as a command-line argument
const args = process.argv.slice(2); 
const argMap = args.reduce((acc, arg) => {
  const [key, value] = arg.split("=");
  acc[key] = value;
  return acc;
}, {});

const cmdVarValue = argMap["--cmd_name"];

if (cmdVarValue === "script1") {
  require("dotenv").config();
  const execSync = require("child_process").execSync;

  // execute the command...
  execSync(`sonar-scanner -Dsonar.token=${process.env.SONAR_TOKEN}`, {
    stdio: [0, 1, 2],
  });
} else if(script2==='script2'){
}

//不要忘记将声纳扫描仪路径添加到环境变量中

C:\sonarqube\sonar-scanner-5.0.1.3006-windows\bin
© www.soinside.com 2019 - 2024. All rights reserved.