2017-09-04 5 views
0

Angular cli로 프로젝트를 만들었습니다. 원 CI를 사용하여 CI를 만들고 싶습니다. 프로젝트가 Bitbucket에 업로드되고 Circle CI가 올바르게 선택합니다. 빌드가 실패합니다. config.yml입니다 다음 (. 내가 angularcli 이전에 의해 생성 된 package.json이 AngularCLI를 설치한다고 가정합니다.원형 ci (angular cli 프로젝트)에서 npm 설치가 실패합니다

version: 2 
jobs: 
    build: 
    #working_directory: ~/mern-starter 
    # The primary container is an instance of the first list image listed. Your build commands run in this container. 
    docker: 
     - image: circleci/node:7.10.0 
    # The secondary container is an instance of the second listed image which is run in a common network where ports exposed on the primary container are available on localhost. 
     #- image: mongo:3.4.4 
    steps: 
     - checkout 
     - run: 
      name: Update npm 
      command: 'sudo npm install -g [email protected]' 
     - restore_cache: 
      key: dependency-cache-{{ checksum "package.json" }} 
     - run: 
      name: Install npm wee 
      command: npm install 
     - save_cache: 
      key: dependency-cache-{{ checksum "package.json" }} 
      paths: 
      - node_modules 
    test: 
    docker: 
     - image: circleci/node:7.10.0 
     #- image: mongo:3.4.4 
    steps: 
     - checkout 
     - run: 
      name: Test 
      command: ng test 
     #- run: 
     # name: Generate code coverage 
     # command: './node_modules/.bin/nyc report --reporter=text-lcov' 
     #- store_artifacts: 
     # path: test-results.xml 
     # prefix: tests 
     #- store_artifacts: 
     # path: coverage 
     # prefix: coverage 

workflows: 
    version: 2 
    build_and_test: 
    jobs: 
     - build 
     - test: 
      requires: 
      - build 
      filters: 
      branches: 
       only: dev 

오류

#!/bin/bash -eo pipefail 
npm install 
module.js:472 
    throw err; 
    ^

Error: Cannot find module 'process-nextick-args' 
    at Function.Module._resolveFilename (module.js:470:15) 
    at Function.Module._load (module.js:418:25) 
    at Module.require (module.js:498:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js:26:23) 
    at Module._compile (mod 
) CircleCI의 sample.yml을 포착하고 그것을 (추가 NG 테스트를 변경

는 내가 이미 설치되어있는 프로세스 nexttick-인수를 가정 그래서 npm install 단계 이후에 다음과 같은 라인을 참조하십시오. [email protected] node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-arg

답변

0

구성 오에 이어 이온은 나를 위해 일했다. CircleCI 2.0을 사용했습니다. 나는 아직도 그것을 다듬고 있으며 미래에 대답을 바꿀 수도있다. 위의 스크립트에 추가

version: 2 

jobs: 
    build: 
     working_directory: ~/angularcli 
     # The primary container is an instance of the first list image listed. Your build commands run in this container. 
     docker: 
      - image: circleci/node:6-browsers 
       environment: 
        CHROME_BIN: "/usr/bin/google-chrome" 
     steps: 
      - checkout 
      - run: 
       name: Install node_modules with npm 
       command: npm install 
      - save_cache: 
       key: dependency-cache-{{ checksum "package.json" }} 
       paths: 
        - ./node_modules 
      - run: 
       name: Install angularcli 
       command: sudo npm install -g @angular/[email protected] 
      - run: 
       name: Run unit tests with karma 
       command: ng test 
      - store_test_results: 
       path: test-results.xml 

, singleRun: true 그래서 카르마 모든 테스트 케이스를 실행 한 후 종료하는 것이 karma.conf.js true로 singleRun 플래그를 설정합니다. 이 플래그가 없으면 카르마는 연속 모드로 실행되고 ng test 정지가 종료되지 않고 시간 초과 후 테스트가 실패합니다.