CircleCI 权限被拒绝为 Firebase 部署打开 firebase-tools.json

CircleCI permission denied opening firebase-tools.json for Firebase deployment

我正在使用 Firebase 托管我的个人网站,并希望集成 CircleCI 以加快集成速度。但是我在部署步骤中收到此错误:

备注 在 deploy 命令前添加 sudo 也会导致构建失败

/home/circleci/project/node_modules/configstore/index.js:52
          throw error;
          ^

Error: EACCES: permission denied, open '/home/circleci/.config/configstore/firebase-tools.json'
You don't have access to this file.

下面是我项目的yaml配置:

---
commands:
  restore_cache_cmd:
    description: "Restore cached npm install"
    steps:
      - restore_cache:
          key: 'dependency-cache-{{checksum "package.json"}}'
  save_cache_cmd:
    description: "Saving npm install"
    steps:
      - save_cache:
          key: 'dependency-cache-{{ checksum "package.json"}}'
          paths:
            - "./node_modules"
  update:
    description: "Installing project's dependencies"
    steps:
      - checkout
      - restore_cache_cmd
      - run: sudo npm i -g npm@latest
      - run: sudo npm i
      - save_cache_cmd
  build_deploy:
    description: "Building project"
    steps:
      - run:
          name: Build
          command: sudo npm run build
      - run:
          name: Deploy
          command: ./node_modules/.bin/firebase deploy --token=$FIREBASE_DEPLOY_TOKEN -- only hosting
executors:
  docker-executor:
    docker:
      - image: "cimg/node:12.14.1"
jobs:
  build_site:
    executor: docker-executor
    working_directory: ~/Darryls-Personal-Site
    steps:
      - update
      - build_deploy
version: 2.1
workflows:
  build_site:
    jobs:
      - build_site:
          filters:
            branches:
              only: master

我已经从其他问题中完成的步骤:

我认为问题在于您 运行 所有 npm 命令都使用 sudo 除了 firebase deploy 命令。 您绝对应该 运行 当前用户而不是超级用户的所有内容。 您会在 official tutorials 中看到 运行 与 sudo 没有任何区别,除了非常特殊的情况。

此外,您可以使用 npx run firebase deploy 而不是这样做 ./node_modules/.bin/firebase deploy,它首先查看本地 node_modules,然后再查看全局。