如何查看firebase deploy命令所部署的具体文件?
Got it, I see the issue here—your Firebase CLI version (3.18.4) is pretty old, and the --debug flag back then didn’t log individual uploaded files, just the total count like you saw (2 files uploaded successfully). Let’s go through a few practical ways to get the specific file list you need:
Method 1: Upgrade Firebase CLI and Use Targeted Debug Logs
Older CLI versions lacked detailed file upload logging. First, upgrade to the latest version to unlock better debug output:
npm install -g firebase-tools
Then run a hosting-only deploy with debug mode—this will focus logs on hosting and show individual file processing:
firebase deploy --only hosting --debug
You’ll now see entries like [hosting] processing file: path/to/your/file or [hosting] uploading file: path/to/your/file for every item being deployed.
Method 2: Preview Deployment Without Uploading
Use the --preview flag to simulate a deploy and list all files that would be uploaded, without actually pushing changes to Firebase:
firebase deploy --only hosting --preview
This command directly outputs the full paths of files queued for upload—super straightforward for verifying what’s going to be deployed.
Method 3: Check Local Deployment Cache
Firebase stores a local cache of your hosting deployment files. You can browse this cache to see exactly which files are included in deployments:
- macOS/Linux:
~/.cache/firebase/hosting/[your-project-id] - Windows:
%APPDATA%\Roaming\firebase\hosting\[your-project-id]
The directory structure mirrors yourdist(or public) folder, so you can cross-reference it with your local files.
Your Original Debug Log (Formatted)
[2018-05-25T09:48:26.423Z] ---------------------------------------------------------------------- [2018-05-25T09:48:26.426Z] Command: /usr/local/bin/node /usr/local/bin/firebase deploy --debug [2018-05-25T09:48:26.427Z] CLI Version: 3.18.4 [2018-05-25T09:48:26.427Z] Platform: darwin [2018-05-25T09:48:26.427Z] Node Version: v9.2.0 [2018-05-25T09:48:26.428Z] Time: Fri May 25 2018 11:48:26 GMT+0200 (CEST) [2018-05-25T09:48:26.428Z] ---------------------------------------------------------------------- [2018-05-25T09:48:26.439Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] [2018-05-25T09:48:26.440Z] > authorizing via signed-in user [2018-05-25T09:48:26.441Z] > refreshing access token with scopes: ["email","https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","openid"] [2018-05-25T09:48:26.442Z] >>> HTTP REQUEST POST https://www.googleapis.com/oauth2/v3/token { refresh_token: '1/sNSNg7xxbzwVujBEzRAQ2eZHkEuT0d6A2jVVUGa-e9Jgrc8NASizU4RK7MEmNnov', client_id: '563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com', client_secret: 'j9iVZfS8kkCEFUPaAeJV0sAi', grant_type: 'refresh_token', scope: 'email https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/firebase openid' } Fri May 25 2018 11:48:26 GMT+0200 (CEST) [2018-05-25T09:48:26.585Z] <<< HTTP RESPONSE 200 cache-control=no-cache, no-store, max-age=0, must-revalidate, pragma=no-cache, expires=Mon, 01 Jan 1990 00:00:00 GMT, date=Fri, 25 May 2018 09:48:26 GMT, vary=X-Origin, Origin,Accept-Encoding, content-type=application/json; charset=UTF-8, x-content-type-options=nosniff, x-frame-options=SAMEORIGIN, x-xss-protection=1; mode=block, server=GSE, alt-svc=hq=":443"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=":443"; ma=2592000; v="43,42,41,39,35", accept-ranges=none, connection=close [2018-05-25T09:48:26.593Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/test-table Fri May 25 2018 11:48:26 GMT+0200 (CEST) [2018-05-25T09:48:27.222Z] <<< HTTP RESPONSE 200 server=nginx, date=Fri, 25 May 2018 09:48:27 GMT, content-type=application/json; charset=utf-8, content-length=141, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store [2018-05-25T09:48:27.223Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/database/test-table/tokens Fri May 25 2018 11:48:27 GMT+0200 (CEST) [2018-05-25T09:48:27.777Z] <<< HTTP RESPONSE 200 server=nginx, date=Fri, 25 May 2018 09:48:27 GMT, content-type=application/json; charset=utf-8, content-length=274, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store === Deploying to 'test-table'... i deploying hosting i hosting: preparing dist directory for upload... [2018-05-25T09:48:28.900Z] >>> HTTP REQUEST PUT https://deploy.firebase.com/v1/hosting/test-table/uploads/-LDLglCdzpfzQK77Fbrb?fileCount=2&message= Fri May 25 2018 11:48:28 GMT+0200 (CEST) Uploading: [ ] 0%[2018-05-25T09:48:32.752Z] <<< HTTP RESPONSE 200 server=nginx, date=Fri, 25 May 2018 09:48:32 GMT, content-type=application/json; charset=utf-8, content-length=49, connection=close, access-control-allow-origin=*, access-control-allow-methods=GET, PUT, POST, DELETE, OPTIONS, strict-transport-security=max-age=31556926; includeSubDomains; preload, x-content-type-options=nosniff [2018-05-25T09:48:32.753Z] [hosting] .tgz uploaded successfully, waiting for extraction ✔ hosting: 2 files uploaded successfully [2018-05-25T09:48:33.642Z] [hosting] deploy completed after 5190ms [2018-05-25T09:48:33.643Z] >>> HTTP REQUEST POST https://deploy.firebase.com/v1/projects/test-table/releases { hosting: { public: 'dist', ignore: [ 'firebase.json', '**/.*', '**/node_modules/**' ], version: '-LDLglCdzpfzQK77Fbrb', prefix: '-LDLglCdzpfzQK77Fbrb/', manifest: [] } } Fri May 25 2018 11:48:33 GMT+0200 (CEST) [2018-05-25T09:48:34.951Z] <<< HTTP RESPONSE 200 server=nginx, date=Fri, 25 May 2018 09:48:34 GMT, content-type=application/json; charset=utf-8, content-length=34, connection=close, access-control-allow-origin=*, access-control-allow-methods=GET, PUT, POST, DELETE, OPTIONS, strict-transport-security=max-age=31556926; includeSubDomains; preload, x-content-type-options=nosniff ✔ Deploy complete
内容的提问来源于stack exchange,提问作者Matt

