Команда ng build не работает в конвейере jenkins - PullRequest
1 голос
/ 13 марта 2019

Я довольно новичок в Дженкинс. Я создал конвейер в 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

Я использую Jenkins 2.150.3, Angular CLI 7.3.4, NodeJS 10.15.1 в Windows 10. Если я вычту '-' между ng и build, команда работает, но она игнорирует флаги после сборки , Я думаю, что мне нужно добавить переменную пути для angular cli, но я не уверен, где ее добавить или какой будет правильный синтаксис.

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

С той же проблемой, с которой я столкнулся при сборке Octopus CICD.Ниже решение работает для меня.

  1. Изменение в пакете json-скрипт, как "build": "ng build --prod",
  2. Выполнить команду из CICD, как npm run build

Надеюсь, это поможет!

0 голосов
/ 13 марта 2019

@ Andrew Lobban Исправление флага оптимизации помогло.Я должен был держать '-' между ng и build, иначе он не распознал бы ни один из флагов.Когда я сказал, что это работает, я имел в виду, что angular cli будет делать обычную сборку без каких-либо флагов.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...