angular - ng build 命令在詹金斯管道中不起作用
问题描述
我对詹金斯还很陌生。我在 Jenkins 中为 Angular 7 应用程序设置了一个管道。这是我的詹金斯文件:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
echo 'Checkout master branch'
checkout scm
dir('webapp') {
bat 'npm install'
}
}
}
stage('Build') {
steps {
echo 'Building..'
dir('webapp') {
bat 'npm run ng -- build --prod --baseHref=/webapp/ -optimization=true'
}
}
}
stage('Deploy') {
steps {
echo 'Deploying....'
ftpPublisher paramPublish: null, masterNodeName: '', alwaysPublishFromMaster: true, continueOnError: false, failOnError: true, publishers: [
[configName: 'mattdailey.net', verbose: true, transfers: [
[asciiMode: false, cleanRemote: true, excludes: '', flatten: false, makeEmptyDirs: tur, noDefaultExcludes: false, patternSeparator: '[, ]+',
remoteDirectory: "webapp", removePrefix: "webapp/dist", remoteDirectorySDF: false, sourceFiles: 'webapp/dist/**'
]
], usePromotionTimestamp: false, useWorkspaceInPromotion: false]
]
}
}
}
post {
success {
slackSend(color: '#00FF00', message: "Build Successful")
}
failure {
slackSend(color: '#FF0000', message: "Build Failed")
}
}
}
当我创建一个构建时,我收到以下错误:
ng "build" "--prod" "--baseHref=/webapp/" "-optimization=true"
Unknown option: '-n'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
我在 Windows 10 中使用 Jenkins 2.150.3、Angular CLI 7.3.4、NodeJS 10.15.1。如果我在 ng 和 build 之间取出“--”,则该命令有效,但它在构建后忽略了标志。我想我需要为 angular cli 添加一个路径变量,但我不确定在哪里添加它或正确的语法是什么。
解决方案
我在使用 Octopus CICD 构建时遇到了同样的问题。以下解决方案对我有用。
- 更改包 json 脚本,例如
"build": "ng build --prod",
- 从 CICD 运行命令,如
npm run build
希望有帮助!
推荐阅读
- flutter - 有没有办法在颤动中模仿 HorizontalDragGesture?
- python - 如何使用python找到文件的真实文件扩展名
- r - 需要一种有效的方法将因子值从数据框的一列更改为另一列
- sql - Azure ARM 模板“VmAgentNotRunning”
- ios - 在子视图中时,我无法将按钮的 touchUpInside 调用到 ViewController
- json - 用 TCL 解析 JSON
- php - CakePHP中如何让SQL数据默认降序显示?
- python - 从数组中的字符串集中提取 ID 和值
- c++ - 为什么要修改集合的向量数据成员
导致这个程序无限运行? - linux - 单行列出目录中文件的旧版本