如何在CircleCI中的不同步骤中访问已安装的firebase-tools

lf5gs5x2  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(131)

在我的一个项目中,我正在用Firebase试验Circle CI。为了使用firebase命令进行部署,首先需要安装firebase-tools
在我的config.yml文件中,下面是- simplified

version: 2.1
orbs:
  node: circleci/node@1.1.6
jobs:
  install-and-build:
    executor:
      name: node/default
    steps:
      - node/with-cache:
          steps:
            - checkout
            - run: npm install
            - run: sudo npm install -g firebase-tools
            - run: npm run-script build
  deploy:
    executor:
      name: node/default
    steps:
      - node/with-cache:
          steps:
            - run: firebase --version
workflows:
  build-and-deploy:
    jobs:
      - install-and-build:
          requires:
            - install-dependencies
      - deploy:
          requires:
            - install-and-build

问题:

一旦npm install -g firebase-tools命令处于不同的步骤,则它最近无法识别firebase命令并抛出以下错误:
/bin/bash:firebase:未找到命令
我找到了一个解决方案,通过在使用之前移动firebase-tools安装步骤来消除这个问题:

- node/with-cache:
    steps:
      - run: sudo npm install -g firebase-tools
      - run: firebase --version

问题:

我会说这个解决方案只是一个变通方案,而不是一个合适的解决方案,比如将firebase-tools安装步骤移动到install-and-build安装步骤中并在部署步骤中使用。根据我的研究,我首先尝试了以下想法:
1.基于此SO questionalias创建为alias firebase="npm config get prefix/bin/firebase"
1.运行npm get prefix,根据此SO question确定哪个文件夹包含firebase命令。
1.将firebase-tools安装为devDependency,并使用save_cacherestore_cache选项从node_modules文件夹读取。
可能问题是别的什么我看不出来,他们都没有帮助,所以我的问题:
1.是否有任何解决方案可以帮助管道在任何之前的步骤中安装后访问firebase命令?
1.在部署步骤中包含firebase-tools安装步骤可以吗?出于某种原因,我不喜欢这样。
有人能给我讲讲这个主题吗?任何想法都是赞赏,谢谢!

rslzwgfq

rslzwgfq1#

为了让firebase工具在我的圈子里启动和运行。我使用了以下代码:

# Install Firebase tools needed for firebase emulator
  - run:
      name: Install firebase tools
      command: |
        curl -sL firebase.tools | bash
  # Then start firebase emulator in the background
  - run:
      name: Start firebase emulator
      command: |
        firebase emulators:start --import=driver_app_data/export_directory
      background: true

相关问题