Jenkins管道npm安装EACSS权限被拒绝

时间:2019-12-18 06:48:59

标签: jenkins-pipeline npm-install

当我尝试在我的一个jenkins从属服务器上通过jenkins管道运行“ npm install”时出现此错误。但是我可以通过直接在该从属节点上运行此命令来成功安装。 这是我收到的错误消息:

14:10:11  > node-sass@4.13.0 install /var/jenkins_home/workspace/JenkinsBuild/node_modules/node-sass
14:10:11  > node scripts/install.js
14:10:11  
14:10:11  Unable to save binary /var/jenkins_home/workspace/JenkinsBuild/node_modules/node-sass/vendor/linux-x64-72 : Error: EACCES: permission denied, mkdir '/var/jenkins_home/workspace/JenkinsBuild/node_modules/node-sass/vendor'
14:10:11      at Object.mkdirSync (fs.js:823:3)
14:10:11      at sync (/var/jenkins_home/workspace/JenkinsBuild/node_modules/mkdirp/index.js:71:13)
14:10:11      at Function.sync (/var/jenkins_home/workspace/JenkinsBuild/node_modules/mkdirp/index.js:77:24)
14:10:11      at checkAndDownloadBinary (/var/jenkins_home/workspace/JenkinsBuild/node_modules/node-sass/scripts/install.js:114:11)
14:10:11      at Object.<anonymous> (/var/jenkins_home/workspace/JenkinsBuild/node_modules/node-sass/scripts/install.js:157:1)
14:10:11      at Module._compile (internal/modules/cjs/loader.js:956:30)
14:10:11      at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
14:10:11      at Module.load (internal/modules/cjs/loader.js:812:32)
14:10:11      at Function.Module._load (internal/modules/cjs/loader.js:724:14)
14:10:11      at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10) {
14:10:11    errno: -13,
14:10:11    syscall: 'mkdir',
14:10:11    code: 'EACCES',
14:10:11    path: '/var/jenkins_home/workspace/JenkinsBuild/node_modules/node-sass/vendor'
14:10:11  }

所以我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

您可以发送代码吗?

如果有帮助,我个人通常会执行以下操作(脚本语法) (您需要安装nodejs插件:https://wiki.jenkins.io/display/JENKINS/NodeJS+Plugin

在文件夹“ Build”上签出我的仓库,然后:

    stage ("build") { 
         dir('Build') {
            env.NODEJS_HOME = "${tool 'Node 12.12'}"
            env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
            sh 'npm install'
            sh 'npm run someScript'
            sh 'npm pack'  
        }
    }