我在尝试使用天蓝色管道进行部署时出错了。
Error: EACCES: permission denied, access '/usr/local/lib/node_modules'我认为这是因为node_modules文件夹没有在各个阶段之间共享。但我想不出什么是正确的方法。
这是我的yaml文件:
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应该出现在目录中,但它似乎没有正确地共享。
发布于 2019-11-28 09:35:17
您正在使用Ubuntu映像,并试图在没有Ubuntu netlify-cli的Linux中全局安装netlify-cli。
如果Ubuntu是您必须使用的必要系统,那么最好在此命令之前添加sudo:
sudo npm i -g netlify-cli在这个医生里,nix (OSX、Linux等)
如果您使用Node的默认安装程序安装Node,则可能需要使用sudo (特别是在Linux或OS上)对这些命令进行前缀。
在VSTS中,您必须在命令中使用sudo,以使您对Ubuntu具有无密码的sudo权限。

另一种方法是,如果您对构建环境没有任何特殊要求,则将映像更改为vs2017-win2016:
pool:
vmImage: 'vs2017-win2016'使用此映像时,您可以安装任何东西,而不需要使用sudo。
事实上,我们已经在所有托管映像中预先安装了许多基本工具,包括node.js。
在我们的github描述中,我们列出了为所有映像预先安装的所有工具。您可以查看以了解更多关于VSTS的信息。
https://stackoverflow.com/questions/59085210
复制相似问题