首页 > 解决方案 > 尝试使用 VSTS 构建 Electron 应用程序失败,提示“错误请尝试以 root/管理员身份再次运行此命令。”

问题描述

使用 VSTS 构建 Electron 应用程序,但我的 NPM 任务一直存在问题:

我不是开发人员,我是开发人员,试图让它在运行 npm install VSTS 任务的 VSTS 中构建,这看起来不错,但后来我在我的命令所在的地方运行 npm 自定义任务,npm run electron-build然后它失败了。

我以 root 管理员身份运行它,所以我不确定为什么会出现该消息。

另外:如果我 rdp 到上面有 vsts 代理的 VM 并运行相同的 NPM 命令,它只会在 VSTS 构建它时构建它失败。

这是我从 VSTS 得到的输出

50375 verbose unlock done using C:\Users\LGBUILDADMIN\AppData\Roaming\npm-cache\_locks\staging-c7d6f0879aedfd51.lock for E:\Agents\LG-04\_work\244\s\node_modules\.staging
50376 verbose stack Error: EPERM: operation not permitted, scandir 'E:\Agents\LG-04\_work\244\s\node_modules\fsevents\node_modules\dashdash\node_modules'
50377 verbose cwd E:\Agents\LG-04\_work\244\s
50378 verbose Windows_NT 6.3.9600
50379 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\LGBUILDADMIN\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "install"
50380 verbose node v8.11.1
50381 verbose npm  v5.5.1
50382 error path E:\Agents\LG-04\_work\244\s\node_modules\fsevents\node_modules\dashdash\node_modules
50383 error code EPERM
50384 error errno -4048
50385 error syscall scandir
50386 error Error: EPERM: operation not permitted, scandir 'E:\Agents\LG-04\_work\244\s\node_modules\fsevents\node_modules\dashdash\node_modules'
50386 error  { Error: EPERM: operation not permitted, scandir 'E:\Agents\LG-04\_work\244\s\node_modules\fsevents\node_modules\dashdash\node_modules'
50386 error   stack: 'Error: EPERM: operation not permitted, scandir \'E:\\Agents\\LG-04\\_work\\244\\s\\node_modules\\fsevents\\node_modules\\dashdash\\node_modules\'',
50386 error   errno: -4048,
50386 error   code: 'EPERM',
50386 error   syscall: 'scandir',
50386 error   path: 'E:\\Agents\\LG-04\\_work\\244\\s\\node_modules\\fsevents\\node_modules\\dashdash\\node_modules' }
50387 error Please try running this command again as root/Administrator.
50388 verbose exit [ -4048, true ]
Error: Npm failed with return code: 4294963248

这里也是 package.json。

{ "name": "sds", "version": "0.0.0", "license": "MIT", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build --prod", "test": "ng test --sourceMap=false --watch", "lint": "ng lint", "e2e": "ng e2e", "tslint": "tslint -p tsconfig.json -e src/main.ts -e src/polyfills.ts -e src/test.ts -e e2e/src/*.ts", "format-all": "prettier --write **/*.{ts,js,css,scss,json}", "format": "pretty-quick --staged", "electron": "electron .", "electron-build": "ng build --prod --base-href ./ && electron .", "package-mac": "ng build --prod --base-href ./ && electron-packager . --overwrite --platform=darwin --arch=x64 --prune=true --out=release-builds", "package-win": "ng build --prod --base-href ./ && electron-packager . sds --overwrite --asar=false --platform=win32 --arch=ia32 --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"SDS\"", "package-linux": "ng build --prod --base-href ./ && electron-packager . sds --overwrite --asar=false --platform=linux --arch=x64 --prune=true --out=release-builds" }, "private": true, "main": "main.js", "dependencies": { "@angular/cli": "6.0.0", "@angular/animations": "6.0.0", "@angular/common": "6.0.0", "@angular/compiler": "6.0.0", "@angular/core": "6.0.0", "@angular/forms": "6.0.0", "@angular/http": "6.0.0", "@angular/platform-browser": "6.0.0", "@angular/platform-browser-dynamic": "6.0.0", "@angular/router": "6.0.0", "@types/lodash": "^4.14.110", "angular-fastclick": "^1.0.4", "core-js": "^2.5.7", "hammerjs": "^2.0.8", "latest": "^0.2.0", "lodash": "^4.17.10", "rxjs": "^6.2.1", "shelljs": "^0.8.2", "zone.js": "^0.8.26" }, "devDependencies": { "@angular-devkit/build-angular": "^0.6.8", "@angular/cli": "6.0.0", "@angular/compiler-cli": "6.0.0", "@angular/language-service": "6.0.0", "@types/jasmine": "^2.8.8", "@types/jasminewd2": "~2.0.2", "@types/node": "^6.0.113", "codelyzer": "^4.4.2", "electron": "^1.8.7", "electron-packager": "^12.0.2", "husky": "^0.14.3", "jasmine-core": "~2.8.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~2.0.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "^1.4.3", "karma-jasmine": "^1.1.2", "karma-jasmine-html-reporter": "^0.2.2", "npm-run-all": "^4.1.3", "prettier": "^1.13.7", "pretty-quick": "^1.6.0", "protractor": "~5.1.2", "ts-node": "~4.1.0", "tslint": "~5.9.1", "tslint-config-prettier": "^1.13.0", "typescript": "2.7.2" } }

标签: node.jsnpmazure-devopselectron

解决方案


我的问题的答案是我使用了错误的 cli 命令并且正在构建然后立即运行该应用程序,这将导致超时,因为该应用程序仍在后台运行。我更改为仅构建应用程序的命令,并且从那以后一直有效。


推荐阅读