У меня есть угловой проект, в котором есть файл api-keys.ts, который выглядит следующим образом:
export var masterFirebaseConfig = {apiKey: $fireBaseApiKey, authDomain: 'dataJitsu.firebaseapp.com',databaseURL: 'https://datajitsu.firebaseio.com',storageBucket: '',messagingSenderId: '495992924984'};
Я думаю $fireBaseApiKey
хранится как переменная окружения в моем проекте на circleCI, как вы можете видеть на рисунке здесь:
Тем не менее, я все еще получаю следующую ошибку при запуске моей конфигурации на circleCI:
ОШИБКА в src / app / api-keys.ts (1,44): ошибка TS2304: не удается найти имя
'$ FireBaseApiKey'. src / app / app.module.ts (75,11): ошибка TS2304: невозможно
найдите имя 'apiKey'.
(ошибка в app.module.ts происходит непосредственно от ошибки в api-keys.ts)
Я попытался выяснить, была ли проблема на стороне circleCI или как я подключал ее к Angular, поэтому я попытался echo
вывести переменную среды в моем файле конфигурации:
version: 2.1
orbs:
cypress: cypress-io/cypress@1.0.1
steps:
- run:
name: Setup Environment Variables
command: |
echo '$fireBaseApiKey'
workflows:
build:
jobs:
- cypress/install:
build: 'npm run build'
context: fireBaseApiKey
- cypress/run:
requires:
- cypress/install
start: 'npm start'
context: fireBaseApiKey
Я вошел в сессию после того, как она завершилась ошибкой, и я не мог видеть никаких признаков
что моя команда эха была даже признана.
Я надеюсь, что помощь на фронте echo
или на угловом фронте будет продуктивной для решения вопроса / проблемы.
Кроме того, я использую Cypress для интеграционного тестирования и, следовательно, использую Cypress Orb для настройки и запуска тестов. Я не был уверен, как / нужно ли переменным окружения проникать в задания orb, поэтому я также добавил переменную в контекст проекта (и контекст, и ключ одиночной пары ключ-значение имеют одно и то же имя):
Обновление: вот вывод из файла журнала circleCI:
0 информация работает, если она заканчивается ok 1 verbose cli [
'/ usr / local / bin / node', '/ usr / local / bin / npm', 'run', 'build'] 2 info
используя npm@6.4.1 3 info используя node@v10.13.0 4 verbose run-script [
'prebuild', 'build', 'postbuild'] 5 жизненный цикл информации
data-jitsu@0.0.0~prebuild: data-jitsu@0.0.0 6 жизненный цикл информации
data-jitsu@0.0.0~build: data-jitsu@0.0.0 7 подробный жизненный цикл
data-jitsu@0.0.0~build: unsafe-perm в жизненном цикле true 8 подробный
жизненный цикл data-jitsu@0.0.0~build: PATH:
/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/root/project/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/ SBIN: / USR / бен: / SBIN: / бен
9 подробный жизненный цикл data-jitsu@0.0.0~ build: CWD: / root / project 10
глупый жизненный цикл data-jitsu@0.0.0~build: Args: ['-c', 'ng build'] 11
глупый жизненный цикл data-jitsu@0.0.0~build: возвращено: код: 1 сигнал:
null 12 info жизненный цикл data-jitsu@0.0.0~build: не удалось выполнить сборку
Скрипт многословной ошибки 13: data-jitsu@0.0.0 build: ng build
13
многословный стек Выход из состояния 1 13 подробный стек в
EventEmitter.
(/Usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
13 многословный стек в EventEmitter.emit (events.js: 182: 13) 13
многословный стек в ChildProcess.
(/Usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 многословный стек в ChildProcess.emit (events.js: 182: 13) 13
многословный стек в MaybeClose (внутренний / child_process.js: 962: 16) 13
многословный стек в Process.ChildProcess._handle.onexit
(internal / child_process.js: 251: 5) 14 подробный pkgid data-jitsu@0.0.0 15
подробный cwd / root / project 16 подробный Linux 4.4.0-141-generic 17
verbose argv "/ usr / local / bin / node" "/ usr / local / bin / npm" "run" "build"
18 verbose node v10.13.0 19 verbose npm v6.4.1 20 код ошибки
ELIFECYCLE 21 ошибка errno 1 22 ошибка data-jitsu@0.0.0 build: ng
build
22 ошибка Состояние выхода 1 23 ошибка Ошибка data-jitsu@0.0.0
Сценарий сборки. 23 ошибка Это, вероятно, не проблема с npm. Там
скорее всего, дополнительный вывод журнала выше. 24 подробных выхода [1, правда]