CircleCI: тест $ npm не пройден и не находит установленный пакет - PullRequest
0 голосов
/ 26 апреля 2019

По какой-то причине Circle не может использовать ts-mocha, установленный с npm install на предыдущем этапе процесса сборки.

Раньше это работало, но по какой-то причине внезапно перестало.


Это результат задания сборки CircleCI:

circle build job result

Все тесты в порядке локально:

local test run


Это скрипт в package.json, который я запускаю с npm test:

"test": "env NODE_ENV=test ts-mocha ./test/**/*.spec.ts --timeout 10000"

Версия пакета "ts-mocha": "^6.0.0",

Это моя конфигурация задания CircleCI (которая не изменилась за месяц):

jobs:
  build:
    docker:
      - image: circleci/node:10.13.0
    steps:
      - checkout
      - restore_cache:
          keys:
            - v1-dependencies-{{ checksum "package-lock.json" }}
            - v1-dependencies-
      - run: npm install
      - save_cache:
          paths:
            - node_modules
          key: v1-dependencies-{{ checksum "package-lock.json" }}
      - run: npm test
      - run: npx tsc


Кажется, что-то сломалось со стороны Круга, так как в коде не было никаких изменений.

Несмотря на то, что я пытался повторно запустить старые успешные сборки, они терпят неудачу с этой же ошибкой.

То, что я пробовал:

  • Выполнение npm ci && npm test на том же шаге, но оно дает тот же результат.
  • Снятие package-lock.json
  • Обновление package-lock.json
  • Бег npm install --no-package-lock
  • Обновление npm
  • Бег npm update
  • Бег npm audit fix
  • Очистка кэша npm

Также попытался использовать npx вместо того, чтобы полагаться на ранее установленный пакет ts-mocha, и вот результат:

enter image description here

1 Ответ

0 голосов
/ 30 апреля 2019

Я заметил, что переменная окружения CircleCI NODE_ENV была установлена ​​на production, поэтому любые devDependencies не были установлены (даже с npm install --save, потому что она уже была указана как devDependency в * 1006).*).

Я не знаю, когда переменная среды была изменена на это значение, но странным является то, что она начала ломаться от одного дня к другому (хотя она должна была ломаться с того момента, какбыла задана переменная env), поэтому ее было крайне сложно отладить, но это было простое исправление: изменили переменную окружения NODE_ENV в CircleCI на нечто отличное от production.

...