npm install fails in circle ci (angular cli project)

为君一笑 提交于 2019-12-13 02:48:56

问题


I have created a project in Angular cli. I want to do CI using circle ci. The project is uploaded in Bitbucket and is correctly picked by Circle CI. The build fails though. Following is the config.yml (picked CircleCI's sample.yml and changed it (added ng test). I assume that the package.json created by angularcli earlier would install AngularCLI.

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 npm@latest'
      - 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

Error

#!/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

I see the following line after npm install step so I suppose process-nexttick-args is already installed. process-nextick-args@1.0.7 node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-arg


回答1:


Following configuration worked for me. I used CircleCI 2.0. I am still refining it and might change the answer in future.

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/cli@latest
            - run:
                name: Run unit tests with karma
                command: ng test
            - store_test_results:
                path: test-results.xml

In addition to above script, set singleRun flag to true in karma.conf.js singleRun: true so that Karma exits after running all the test cases. Without this flag, Karma runs in continuous mode, the ng test stop doesn't end and test fails after timeout.



来源:https://stackoverflow.com/questions/46030584/npm-install-fails-in-circle-ci-angular-cli-project

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!