npm install在Circle Ci中失败(Angular CLI项目) [英] npm install fails in circle ci (angular cli project)

查看:131
本文介绍了npm install在Circle Ci中失败(Angular CLI项目)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在Angular cli中创建了一个项目。我想使用圆ci进行CI。该项目已上传到Bitbucket中,并由Circle CI正确选择。虽然构建失败。以下是config.yml(选择CircleCI的sample.yml并进行了更改(添加了ng测试)。我认为由angularcli较早创建的package.json将安装AngularCLI。

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

错误

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

我在 npm install 步骤之后看到以下行,所以我想已经安装了process-nexttick-args 。
process-nextick-args@1.0.7 node_modules / npm / node_modules / npm-registry-client / node_modules / concat-stream / node_modules /可读流/ node_modules / process-nextick- arg

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

推荐答案

下面的配置对我有用。我使用了CircleCI 2.0。

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

除了上述脚本,请在karma.conf.js singleRun:true 中将singleRun标志设置为true,以便在运行所有测试用例后Karma退出。如果没有此标志,则Karma将以连续模式运行, ng测试停止不会结束,并且超时后测试也会失败。

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.

这篇关于npm install在Circle Ci中失败(Angular CLI项目)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆