我对詹金斯很陌生。我在Jenkins中为Angular 7应用设置了管道。这是我的Jenkinsfile:
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之间删除'-'并构建命令,则该命令有效,但在构建后它将忽略标志。我想我需要为angular cli添加一个路径变量,但是我不确定在哪里添加它或正确的语法是什么。
答案 0 :(得分:0)
@Andrew Lobban修复优化标志很有帮助。我确实必须将``-''保留在ng和build之间,否则它将无法识别任何标志。当我说它起作用时,我的意思是angular cli将进行常规构建而没有任何标志。谢谢。
答案 1 :(得分:0)
我在使用章鱼CICD时遇到了同样的问题。以下解决方案适用于我。
"build": "ng build --prod",
npm run build
希望对您有所帮助!