`npm ci`只能在您的包时安装包,JSON和package-lock,json或npm-shrinkwrap,JSON是同步的

rjee0c15  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(443)

当我的react应用程序将GitHub操作作为构建的CI运行时,我遇到了这个问题。
npm ERR!npm ci只能在您的包。JSON和package-lock。json或npm-shrinkwrap。JSON是同步的。继续之前,请使用npm install更新您的锁定文件。

我在我的构建脚本中添加了以下步骤:

- name: Update package-lock.json
        run: |
          cd my-app
          rm package-lock.json
          npm install

以下是我的完整构建脚本:

name: Deploy to Firebase Hosting on merge
'on':
  push:
    branches:
      - main
jobs:
  build_and_deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: 'Create env file'
        run: |
          cd my-app
          echo "${{ secrets.ENV_FILE }}" > .env
      - name: Update package-lock.json
        run: |
          cd my-app
          rm package-lock.json
          npm install
      - run: (cd my-app && npm ci)
      - run: (cd my-app && npm run build)
      - uses: FirebaseExtended/action-hosting-deploy@v0
        with:
          repoToken: '${{ secrets.GITHUB_TOKEN }}'
          firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_HELLO_WORLD_12345 }}'
          channelId: live
          projectId: hello-world-12345
          entrypoint: "./my-app"

      - name: Send Discord notification on success
        if: ${{ success() }}
        run: curl -s -X POST "${{ secrets.DISCORD_WEBHOOK }}" -d "content=🚀 Firebase Hosting Merge Successful"

      - name: Send Discord notification on failure
        if: ${{ failure() }}
        run: curl -s -X POST "${{ secrets.DISCORD_WEBHOOK }}" -d "content=🚨 Firebase Hosting Merge Failed"
kqqjbcuj

kqqjbcuj1#

我能想出来。这就是我解决上面问题的方法:

cd my-app
rm -rf node_modules package-lock.json
npm cache clean --force

当我运行npm cache clean --force命令时,我得到了一个关于权限的错误,然后我这样做来解决错误sudo chown -R 501:20 "/Users/me/.npm",之后,我:

npm install

完成这些步骤后,我将更改提交到存储库中,并推送它们以触发GitHub Actions工作流,从而解决了错误。

相关问题