Cloud Functions deploy error during lint on Windows: “enoent ENOENT: no such file or directory”

后端 未结 9 2424
轻奢々
轻奢々 2020-11-27 07:07

Following the firebase function getting started guide and getting a seemingly simple error once trying to deploy with:

firebase deploy --only functions

i  d         


        
相关标签:
9条回答
  • 2020-11-27 07:58

    This is a known problem with the Firebase CLI 3.17.0 through at least 3.17.3, but only on Windows. You can fix this on your machine by editing firebase.json at the root of your project and replacing $RESOURCE_DIR with %RESOURCE_DIR% in the npm commands you see there. The former is the unix syntax way to use an environment variable, whereas the latter is the Windows command shell syntax. Since you're using Windows, you need to use the Windows syntax.

    The team is looking into ways to prevent having to make changes to the config files you use, as it's not really convenient for teams that works across platform to keep changing the same file back and forth.

    EDIT: This issue should be fixed with projects created with CLI version 3.17.5.

    0 讨论(0)
  • 2020-11-27 08:03

    When running

    firebase init functions
    

    I use this configuration

    ? What language would you like to use to write Cloud Functions? JavaScript
    //TypeScript doesn't work
    ? Do you want to use ESLint to catch probable bugs and enforce style? Yes
    //If you don't you will get a missing file lint
    ? File functions/package.json already exists. Overwrite? Yes
    ? Do you want to install dependencies with npm now? Yes
    //Why not
    

    Then if use windows

    Replace $RESOURCE_DIR by %RESOURCE_DIR% in firebase.json

    0 讨论(0)
  • 2020-11-27 08:03

    For ubuntu you need to change firebase.json to following, notice $ before RESOURCE_DIR

    {
      "functions": {
        "predeploy": [
          "npm --prefix \"$RESOURCE_DIR\" run lint",
          "npm --prefix \"$RESOURCE_DIR\" run build"
        ]
      }
    }
    

    for Windows 10 you need to change firebase.jsonn to following, notice % after and before RESOURCE_DIR

    {
      "functions": {
        "predeploy": [
          "npm --prefix \"%RESOURCE_DIR%\" run lint",
          "npm --prefix \"%RESOURCE_DIR%\" run build"
        ]
      }
    }
    
    0 讨论(0)
提交回复
热议问题