How to deploy functions from other directory than '/functions'?

让人想犯罪 __ 提交于 2019-12-08 20:09:22

问题


David in his repo:

https://github.com/davideast/react-ssr-firebase-hosting

has the file with firebase functions index.js in the main root, not in the /functions directory.

However, if I do the same and drop my index.js file to main root, if I do firebase deploy --only functions it says in the console:

i  deploying functions

Error: functions\index.js does not exist, can't deploy Firebase Functions

Q: How is it possible that he made it work? How can I do the same and deploy successfully functions from other dir than /functions?

Thanks

firebase.json

{
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "function": "ssrapp"
      }
    ]
  },
  "functions": {
     "source": "/"
  }
}

回答1:


The project workspace that you create with the Firebase CLI contains a file called firebase.json that has a stanza for Cloud Functions that looks like this:

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

That "source" property defines the name of the folder that contains the code that will run on Cloud Functions. You can change that to whatever you want.




回答2:


If you want to use your root directory as your functions folder just change your source key to . in your firebase.json.

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

This will look for your index.js file in the root directory (remember to move all the other files to your root directory too).

Documentation: https://firebase.google.com/docs/functions/manage-functions#deploy_functions



来源:https://stackoverflow.com/questions/48916633/how-to-deploy-functions-from-other-directory-than-functions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!