Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot run firebase emulators:start with storage-resize-images extension #4554

Closed
kuechlerm opened this issue May 17, 2022 · 4 comments · Fixed by #4555
Closed

Cannot run firebase emulators:start with storage-resize-images extension #4554

kuechlerm opened this issue May 17, 2022 · 4 comments · Fixed by #4555
Assignees

Comments

@kuechlerm
Copy link

[REQUIRED] Environment info

firebase-tools: 10.9.2

Platform: Windows 10

[REQUIRED] Test case

Normal Firebase project

[REQUIRED] Steps to reproduce

I ran
firebase ext:install firebase/storage-resize-images --local
then
firebase emulators:start

[REQUIRED] Expected behavior

Start emulators with the added extension

[REQUIRED] Actual behavior

Emulators do not start

[debug] [2022-05-17T18:04:16.706Z] ----------------------------------------------------------------------
[debug] [2022-05-17T18:04:16.708Z] Command:       C:\Program Files\nodejs\node.exe C:\Dev\my-project\node_modules\firebase-tools\lib\bin\firebase.js emulators:start
[debug] [2022-05-17T18:04:16.708Z] CLI Version:   10.9.2
[debug] [2022-05-17T18:04:16.708Z] Platform:      win32
[debug] [2022-05-17T18:04:16.708Z] Node Version:  v16.14.0
[debug] [2022-05-17T18:04:16.709Z] Time:          Tue May 17 2022 20:04:16 GMT+0200 (Mitteleuropäische Sommerzeit)
[debug] [2022-05-17T18:04:16.709Z] ----------------------------------------------------------------------
[debug] 
[debug] [2022-05-17T18:04:16.763Z] Object ".extensions" in "firebase.json" has unknown property: {"additionalProperty":"storage-resize-images"}
[debug] [2022-05-17T18:04:16.767Z] > 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"]
[debug] [2022-05-17T18:04:16.767Z] > authorizing via signed-in user (*****@gmail.com)
[debug] [2022-05-17T18:04:16.846Z] java version "17.0.2" 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)

[debug] [2022-05-17T18:04:16.847Z] Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)

[debug] [2022-05-17T18:04:16.875Z] Parsed Java major version: 17
[info] i  emulators: Starting emulators: auth, functions, firestore, hosting, storage, extensions {"metadata":{"emulator":{"name":"hub"},"message":"Starting emulators: auth, functions, firestore, hosting, storage, extensions"}}
[debug] [2022-05-17T18:04:16.899Z] [hub] writing locator at C:\Users\my-name\AppData\Local\Temp\hub-my-project.json
[debug] [2022-05-17T18:04:16.909Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/my-project [none]
[debug] [2022-05-17T18:04:17.112Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/my-project 200
[debug] [2022-05-17T18:04:17.112Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/my-project {"projectId":"my-project","projectNumber":"***********","displayName":"my-project","name":"projects/my-project","resources":{"hostingSite":"my-project","storageBucket":"my-project.appspot.com","locationId":"europe-west3"},"state":"ACTIVE"}
[debug] [2022-05-17T18:04:17.113Z] Successfully read params from storage-resize-images.env
[debug] [2022-05-17T18:04:17.113Z] Error: ENOENT: no such file or directory, open 'C:\Dev\my-project\extensions\storage-resize-images.env.default'
[debug] [2022-05-17T18:04:17.113Z] Error: ENOENT: no such file or directory, open 'C:\Dev\my-project\extensions\storage-resize-images.env.***********'
[debug] [2022-05-17T18:04:17.114Z] Error: ENOENT: no such file or directory, open 'C:\Dev\my-project\extensions\storage-resize-images.env.my-project'
[debug] [2022-05-17T18:04:17.114Z] Error: ENOENT: no such file or directory, open 'C:\Dev\my-project\extensions\storage-resize-images.env.local'
[debug] [2022-05-17T18:04:17.114Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/my-project/adminSdkConfig [none]
[debug] [2022-05-17T18:04:17.366Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/my-project/adminSdkConfig 200
[debug] [2022-05-17T18:04:17.366Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/my-project/adminSdkConfig {"projectId":"my-project","storageBucket":"my-project.appspot.com","locationId":"europe-west3"}
[debug] [2022-05-17T18:04:17.369Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/my-project [none]
[debug] [2022-05-17T18:04:17.534Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/my-project 200
[debug] [2022-05-17T18:04:17.534Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/my-project {"projectId":"my-project","projectNumber":"***********","displayName":"my-project","name":"projects/my-project","resources":{"hostingSite":"my-project","storageBucket":"my-project.appspot.com","locationId":"europe-west3"},"state":"ACTIVE"}
[debug] [2022-05-17T18:04:17.536Z] >>> [apiv2][query] GET https://firebaseextensions.googleapis.com/v1beta/publishers/firebase/extensions/storage-resize-images/versions filter=&pageSize=100&pageToken=
[debug] [2022-05-17T18:04:18.299Z] <<< [apiv2][status] GET https://firebaseextensions.googleapis.com/v1beta/publishers/firebase/extensions/storage-resize-images/versions 200
[...] 
[debug] [2022-05-17T18:04:18.309Z] >>> [apiv2][query] GET https://firebaseextensions.googleapis.com/v1beta/publishers/firebase/extensions/storage-resize-images/versions/0.1.28 [none]
[debug] [2022-05-17T18:04:19.232Z] <<< [apiv2][status] GET https://firebaseextensions.googleapis.com/v1beta/publishers/firebase/extensions/storage-resize-images/versions/0.1.28 200
[...]
[info] i  extensions: Detected invalid source code for firebase/[email protected], expected to find C:\Users\my-name\.cache\firebase\extensions\firebase\[email protected]\functions\node_modules {"metadata":{"emulator":{"name":"extensions"},"extension":{"ref":"firebase/[email protected]"},"message":"Detected invalid source code for firebase/[email protected], expected to find C:\\Users\\my-name\\.cache\\firebase\\extensions\\firebase\\[email protected]\\functions\\node_modules"}}
[info] i  extensions: Starting download for firebase/[email protected] source code... {"metadata":{"emulator":{"name":"extensions"},"extension":{"ref":"firebase/[email protected]"},"message":"Starting download for firebase/[email protected] source code..."}}
[info] i  extensions: cache directory for firebase/[email protected] already exists... {"metadata":{"emulator":{"name":"extensions"},"extension":{"ref":"firebase/[email protected]"},"message":"cache directory for firebase/[email protected] already exists..."}}
[info] i  extensions: downloading https://storage.googleapis.com/firebase-mod-sources-prod/181466310919029d32f2df067e30058ad456e9eac0bb145e5481b1359a5758fc... {"metadata":{"emulator":{"name":"extensions"},"extension":{"ref":"firebase/[email protected]"},"message":"downloading https://storage.googleapis.com/firebase-mod-sources-prod/181466310919029d32f2df067e30058ad456e9eac0bb145e5481b1359a5758fc..."}}
[debug] [2022-05-17T18:04:19.238Z] >>> [apiv2][query] GET https://storage.googleapis.com/firebase-mod-sources-prod/181466310919029d32f2df067e30058ad456e9eac0bb145e5481b1359a5758fc 
[debug] [2022-05-17T18:04:19.268Z] <<< [apiv2][status] GET https://storage.googleapis.com/firebase-mod-sources-prod/181466310919029d32f2df067e30058ad456e9eac0bb145e5481b1359a5758fc 200
[debug] [2022-05-17T18:04:19.268Z] <<< [apiv2][body] GET https://storage.googleapis.com/firebase-mod-sources-prod/181466310919029d32f2df067e30058ad456e9eac0bb145e5481b1359a5758fc [stream]
[info] i  extensions: Downloaded to C:\Users\my-name\.cache\firebase\extensions\firebase\[email protected]... {"metadata":{"emulator":{"name":"extensions"},"extension":{"ref":"firebase/[email protected]"},"message":"Downloaded to C:\\Users\\my-name\\.cache\\firebase\\extensions\\firebase\\[email protected]..."}}
[info] i  emulators: Shutting down emulators. {"metadata":{"emulator":{"name":"hub"},"message":"Shutting down emulators."}}
[info] i  hub: Stopping emulator hub {"metadata":{"emulator":{"name":"hub"},"message":"Stopping emulator hub"}}
[debug] [2022-05-17T18:04:20.397Z] Error: spawnSync npm ENOENT
    at Object.spawnSync (node:internal/child_process:1111:20)
    at spawnSync (node:child_process:814:24)
    at ExtensionsEmulator.installAndBuildSourceCode (C:\Dev\my-project\node_modules\.pnpm\[email protected]\node_modules\firebase-tools\lib\emulator\extensionsEmulator.js:113:58)
    at ExtensionsEmulator.downloadSource (C:\Dev\my-project\node_modules\.pnpm\[email protected]\node_modules\firebase-tools\lib\emulator\extensionsEmulator.js:92:14)
    at async ExtensionsEmulator.ensureSourceCode (C:\Dev\my-project\node_modules\.pnpm\[email protected]\node_modules\firebase-tools\lib\emulator\extensionsEmulator.js:81:17)
    at async ExtensionsEmulator.toEmulatableBackend (C:\Dev\my-project\node_modules\.pnpm\[email protected]\node_modules\firebase-tools\lib\emulator\extensionsEmulator.js:133:30)
    at async Promise.all (index 0)
    at async ExtensionsEmulator.getExtensionBackends (C:\Dev\my-project\node_modules\.pnpm\[email protected]\node_modules\firebase-tools\lib\emulator\extensionsEmulator.js:127:25)
    at async Object.startAll (C:\Dev\my-project\node_modules\.pnpm\[email protected]\node_modules\firebase-tools\lib\emulator\controller.js:302:36)
    at async Command.actionFn (C:\Dev\my-project\node_modules\.pnpm\[email protected]\node_modules\firebase-tools\lib\commands\emulators-start.js:28:35)
[error] 
[error] Error: An unexpected error has occurred.

@joehan
Copy link
Contributor

joehan commented May 17, 2022

Hey @kuechlerm , thanks for reporting this. Looking at the error logs, it seems like this is failing when we try to spawn a new process to npm install the extensions source code https://github.com/firebase/firebase-tools/blob/v10.9.2/src/emulator/extensionsEmulator.ts#L175

I'm not able to repro this on my Mac, so I suspect that this error is Windows only - possibly something similar to https://stackoverflow.com/questions/37125619/spawnsyncnpm-install-gives-error-spawnsync-npm-enoent

@joehan
Copy link
Contributor

joehan commented May 17, 2022

Looks like we probably need to use cross-spawn here instead to ensure that this works correctly on all platforms. Working on a fix to use that now.

@kuechlerm
Copy link
Author

Hi @joehan thanks for the quick response. It would be great if you can fix it - I hope for the best ;)
Thanks!

@holasoycael
Copy link

I'v the same issue and its work to me. Thanks!

I install global package cross-spawn and import from C:\Users\<...>\AppData\Roaming\nvm\v14.18.1\node_modules\firebase-tools\lib\emulator\extensionsEmulator.js and rename child_process_1 .

Thanks!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants