如何在Azure Pipeline中为NPM添加--force参数
解决Azure Static Web Apps构建Angular 13时的--force参数配置问题
Azure Static Web Apps的AzureStaticWebApp@0任务默认会自动执行npm构建命令,但不会默认携带--force参数。你需要通过自定义构建命令来指定带该参数的npm命令,具体修改方式如下:
在AzureStaticWebApp@0任务的inputs区域添加app_build_command字段,明确指定带--force的构建命令。修改后的完整YAML代码如下:
name: Azure Static Web Apps CI/CD pr: branches: include: - master trigger: branches: include: - master jobs: - job: build_and_deploy_job displayName: Build and Deploy Job condition: or(eq(variables['Build.Reason'], 'Manual'),or(eq(variables['Build.Reason'], 'PullRequest'),eq(variables['Build.Reason'], 'IndividualCI'))) pool: vmImage: ubuntu-latest variables: - group: Azure-Static-Web-Apps-purple-grass-0e645d303-variable-group steps: - checkout: self submodules: true - task: AzureStaticWebApp@0 inputs: azure_static_web_apps_api_token: $(AZURE_STATIC_WEB_APPS_API_TOKEN_PURPLE_GRASS_0E645D303) ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig app_location: "/" # App source code path api_location: "" # Api source code path - optional output_location: "dist/[你的Angular项目名称]" # Angular构建默认输出到dist/项目名目录,替换为实际项目名 app_build_command: "npm run build -- --force" # 配置带--force的自定义构建命令 ###### End of Repository/Build Configurations ######
需要注意两个关键细节:
app_build_command中的npm run build -- --force格式不能错:两个连字符是用来将--force参数传递给Angular的构建命令,而非npm本身。output_location必须设置为Angular构建后的实际输出目录,通常是dist/你的项目名称,留空会导致部署找不到构建产物,这也是很多人修改后未生效的常见原因。
另外,确认你的项目package.json的scripts中已定义build命令,示例如下:
"scripts": { "build": "ng build" }
完成上述配置后,Pipeline执行时就会使用带--force的命令构建Angular应用,解决构建报错问题。
内容的提问来源于stack exchange,提问作者Fabricio Rodriguez
相关产品推荐
相关产品推荐

