Node.js Azure nodejs web应用在部署中缺少npm包
因此,我尝试使用git回购协议中的Azure管道部署Azure web应用程序。该项目在本地运行良好,但上传时显示缺少一个包Node.js Azure nodejs web应用在部署中缺少npm包,node.js,azure,npm,azure-devops,azure-pipelines,Node.js,Azure,Npm,Azure Devops,Azure Pipelines,因此,我尝试使用git回购协议中的Azure管道部署Azure web应用程序。该项目在本地运行良好,但上传时显示缺少一个包is docker(实际上我得到了一个enoint文件或dir not found错误)。我没有使用docker,我想Azure只是想检查我是否使用docker,尽管我还没有安装这个软件包。 我正在本地和azure上使用node 10.x和npm 6.14。我正在Linux(ubuntu 20)上部署azure web应用程序 我真的很感谢你的帮助 编辑 我在package
is docker
(实际上我得到了一个enoint文件或dir not found错误)。我没有使用docker,我想Azure只是想检查我是否使用docker,尽管我还没有安装这个软件包。
我正在本地和azure上使用node 10.x和npm 6.14。我正在Linux(ubuntu 20)上部署azure web应用程序
我真的很感谢你的帮助
编辑
我在package.json中添加了package is docker,但问题仍然存在
编辑2
Azure.yml文件
# Node.js Express Web App to Linux on Azure
# Build a Node.js Express app and deploy it to Azure as a Linux web app.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
trigger:
branches:
- dev
- master
variables:
# Azure Resource Manager connection created during pipeline creation
azureSubscription: 'XXXX'
# Web app name
webAppName: 'XXXX'
# Environment name
environmentName: 'XXXX'
# Agent VM image name
vmImageName: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build --if-present
npm run test --if-present
displayName: 'npm install, build and test'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy
environment: $(environmentName)
pool:
vmImage: $(vmImageName)
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'XXXXXX'
inputs:
azureSubscription: $(azureSubscription)
appType: webAppLinux
appName: $(webAppName)
runtimeStack: 'NODE|10.10'
package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
startUpCommand: 'npm run deploy'
json包中的脚本
"scripts": {
"test": "echo \"Error: no test specified\"",
"start": "cross-env NODE_ENV=production node -r dotenv/config .",
"dev": "ts-node-dev -r dotenv/config ./src/app.ts",
"build": "tsc",
"deploy": "tsc && cross-env NODE_ENV=production node -r dotenv/config ."
},
错误
错误:enoint:没有这样的文件或目录,stat'/home/site/wwwroot/node\u modules/.bin/is docker'
感谢所有帮助人员。我刚搬到Azure去买容器。我想我发现了这个问题,这与我使用了许多与主机操作系统相关的复杂库有关的软件包(我使用的是windows,我的团队的其他3名成员使用的是Mac和2种不同风格的Linux)以及Azure并非每次都使用相同的映像类型有关
不管怎么说,azure容器web应用程序看起来更稳定,dockerhub真的很容易拥有,所以我暂时没有任何问题。反正我要搬到集装箱去,所以。。。你呢?谢谢所有帮助你的人。我刚搬到Azure去买容器。我想我发现了这个问题,这与我使用了许多与主机操作系统相关的复杂库有关的软件包(我使用的是windows,我的团队的其他3名成员使用的是Mac和2种不同风格的Linux)以及Azure并非每次都使用相同的映像类型有关
不管怎么说,azure容器web应用程序看起来更稳定,dockerhub真的很容易拥有,所以我暂时没有任何问题。反正我要搬到集装箱去,所以。。。你呢?除非你把YAML文件放在这里,否则我没有具体的答案。同时,其中一个回购协议为azure管道提供了一个工作YAML示例。看看这里-如果你不使用docker包,为什么要添加它。停止做随机的事情。问题在别处。@Jay我知道情况并非如此,我只想检查是否会出现另一个错误,然后用新错误进行搜索。我已经用经典编辑器创建了管道,而不是yaml文件,所以我将上传一些截图。是的。我和你在同一条船上。使用经典编辑器很长一段时间,但随着我的项目变得复杂,它变得越来越困难。最终我意识到经典编辑器只是为了学习基础知识。对于真正的工作,YAML是一种选择。另外,使用classic editor,你必须不断地放屏幕截图,这很慢,而且这样显示你的项目细节可能不是一个好主意。我已经给出了一个示例链接,您可以将其用作起点。我没有一个具体的答案,除非你把YAML文件放在这里。同时,其中一个回购协议为azure管道提供了一个工作YAML示例。看看这里-如果你不使用docker包,为什么要添加它。停止做随机的事情。问题在别处。@Jay我知道情况并非如此,我只想检查是否会出现另一个错误,然后用新错误进行搜索。我已经用经典编辑器创建了管道,而不是yaml文件,所以我将上传一些截图。是的。我和你在同一条船上。使用经典编辑器很长一段时间,但随着我的项目变得复杂,它变得越来越困难。最终我意识到经典编辑器只是为了学习基础知识。对于真正的工作,YAML是一种选择。另外,使用classic editor,你必须不断地放屏幕截图,这很慢,而且这样显示你的项目细节可能不是一个好主意。我已经给出了一个示例链接,您可以将其用作起点。这是测试和工作。嗨@George T,谢谢你的分享,你可以接受你的答案。在这种情况下,其他人可以直接找到有用的解决方案。@George T,既然您切换到容器,您是否有任何问题使您后悔与Azure web应用程序相比切换?您好@George T,感谢您的分享,您可以接受您的答案。在这种情况下,其他人可以直接找到有用的解决方案。@George T,自从您切换到容器,您是否有任何问题使您后悔与Azure web应用程序相比切换了容器?