Ale*_*x T 7 yaml azure-devops azure-pipelines
尝试使用 azure 管道进行部署时出现错误。
Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
Run Code Online (Sandbox Code Playgroud)
我认为这是因为 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
Run Code Online (Sandbox Code Playgroud)
运行 npm install 后,包 node_modules 应该出现在目录中,但它似乎没有正确共享。
您正在使用Ubuntu映像,并尝试netlify-cli在没有sudo.
如果Ubuntu是你必须使用的必要系统,你最好sudo在这个命令之前添加:
sudo npm i -g netlify-cli
Run Code Online (Sandbox Code Playgroud)
在本文档中,在 *nix(OSX、Linux 等)上升级:
如果您使用默认安装程序安装 Node,您可能需要在这些命令前加上 sudo 前缀,尤其是在 Linux 或 OS X 上。
与VSTS相同,您必须sudo在命令中使用才能让您拥有Ubuntu.
vs2017-win2016如果对构建环境没有任何特殊要求,另一种方法是将映像更改为:
pool:
vmImage: 'vs2017-win2016'
Run Code Online (Sandbox Code Playgroud)
使用此映像时,您可以安装任何东西,不需要使用sudo.
事实上,我们已经在所有托管镜像中预装了很多基础工具,包括 node.js
在我们的github 描述中,我们列出了为所有图像预安装的所有工具。您可以查看以了解有关 VSTS 的更多信息。
| 归档时间: |
|
| 查看次数: |
5826 次 |
| 最近记录: |