首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure管道yaml许可被拒绝

Azure管道yaml许可被拒绝
EN

Stack Overflow用户
提问于 2019-11-28 09:10:32
回答 1查看 10.1K关注 0票数 7

我在尝试使用天蓝色管道进行部署时出错了。

代码语言:javascript
复制
Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

我认为这是因为node_modules文件夹没有在各个阶段之间共享。但我想不出什么是正确的方法。

这是我的yaml文件:

代码语言:javascript
复制
variables:
  - group: netlify

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

stages: 
  - stage: Build
    jobs:
      - job: ARM
        steps:
        - task: NodeTool@0
          inputs:
            versionSpec: '10.x'
          displayName: 'Install Node.js'

        - script: |
            npm install
            npm run unit
          displayName: 'Setup and test'

        - script: npm run build
        - publish: $(System.DefaultWorkingDirectory)
          artifact: dist
  - stage: Deploy
    dependsOn: Build
    condition: succeeded()
    jobs:
      - job: APP
        steps:
        - bash: |
           npm i -g netlify-cli
           netlify deploy --site $(NETLIFY_SITE_ID) --auth $(NETLIFY_AUTH_TOKEN) --prod

运行npm后,包node_modules应该出现在目录中,但它似乎没有正确地共享。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-28 09:35:17

您正在使用Ubuntu映像,并试图在没有Ubuntu netlify-cliLinux中全局安装netlify-cli

如果Ubuntu是您必须使用的必要系统,那么最好在此命令之前添加sudo

代码语言:javascript
复制
sudo npm i -g netlify-cli

命令在我的管道上成功

在这个医生里,nix (OSX、Linux等)

如果您使用Node的默认安装程序安装Node,则可能需要使用sudo (特别是在Linux或OS上)对这些命令进行前缀。

VSTS中,您必须在命令中使用sudo,以使您对Ubuntu具有无密码的sudo权限。

另一种方法是,如果您对构建环境没有任何特殊要求,则将映像更改为vs2017-win2016

代码语言:javascript
复制
pool:
  vmImage: 'vs2017-win2016'

使用此映像时,您可以安装任何东西,而不需要使用sudo

事实上,我们已经在所有托管映像中预先安装了许多基本工具,包括node.js

在我们的github描述中,我们列出了为所有映像预先安装的所有工具。您可以查看以了解更多关于VSTS的信息。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59085210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档