Firebase-tools: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рд╕рдВрдкрддреНрддрд┐ 'deploys' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдордИ 2019  ┬╖  36рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: firebase/firebase-tools

рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА


firebase-рдЙрдкрдХрд░рдг:
[email protected]


рдордВрдЪ:
рдореИрдХ рдУ рдПрд╕

рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдорд╛рдорд▓рд╛

MacOS, рдиреЛрдб 10.15.3, [email protected]

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдлрд╛рдпрд░рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рджреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдмрдирд╛рдПрдВред
Daud
'рдлрд╛рдпрд░рдмреЗрд╕ рдЯрд╛рд░рдЧреЗрдЯ: рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдбреЗрд╡ рдлрд╛рдпрд░рдмреЗрд╕-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ-рдЖрдИрдбреА рд▓рд╛рдЧреВ рдХрд░реЗрдВ'
Daud
'рдлрд╛рдпрд░рдмреЗрд╕ рдХреА рддреИрдирд╛рддреА - рдЕрдХреЗрд▓рд╛

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рддреИрдирд╛рддреА рд╕рдлрд▓

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

[info] Project Console: https://console.firebase.google.com/project/project-name/overview
[debug] [2019-05-01T19:12:12.726Z] TypeError: Cannot read property 'deploys' of undefined
    at /Users/reeda/.nvm/versions/node/v10.15.3/lib/node_modules/firebase-tools/lib/deploy/index.js:88:36
    at process._tickCallback (internal/process/next_tick.js:68:7)
[error] 
[error] Error: An unexpected error has occurred.

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдореЗрд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛:

  1. .firebaserc рдХреЗ рдкрд╛рд╕ targets.<PROJECT_ID>.hosting.<TARGET_NAME> = [ "<HOST_ID" ] рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
{
  "projects": {
    "default": "my-project-id"
  },
  "targets": {
    "my-project-id": {
      "hosting": {
        "my-blog": [
          "my-blog-host-id"
        ]
      }
    }
  }
}

targets рд╣рд┐рд╕реНрд╕рд╛ рдХрдорд╛рдВрдб firebase target:apply hosting my-blog my-blog-host-id рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

  1. firebase.json рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ hosting рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП target: <TARGET_NAME> рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
{
  "hosting": [{
    "target": "my-blog",
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }]
}

рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ hosting рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рдЖрдЗрдЯрдо рдореЗрдВ target рдЬреЛрдбрд╝реЗрдВред

рд╕рднреА 36 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рдпреЛрдЬрди рд╣реБрдП рд╣реИрдВред рдпрд╣ рддреНрд░реБрдЯрд┐ (рд╕реНрд░реЛрдд рдореЗрдВ) рд╕реЗ рдЖ рд░рд╣реА рд╣реИ: https://github.com/firebase/firebase-tools/blob/master/src/deploy/index.js#L111

@ рдореАрдорд░рд┐рдпрд╛рдЬ рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдЬрд╝рд░

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ firebase.json рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "target": "dev" рд╣реИ? рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╣рдордиреЗ рдЙрди рд╕рднреА рдХреЙрдиреНрдлрд┐рдЧрд░реНрд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ hosintg:dev рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рдереЗ рдФрд░ рд╣рдо рдПрдХ рдЦрд╛рд▓реА рдПрд░реЗ рдХреЗ рд╕рд╛рде рд░рд╣ рдЧрдП рдереЗред рд╣рдо рддрдм рдЙрд╕ рдЦрд╛рд▓реА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕рднреА рддреИрдирд╛рдд рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗ, рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред рдлрд┐рд░ рдЕрдВрдд рдореЗрдВ рд╣рдо рдХрдВрд╕реЛрд▓ рд▓рд┐рдВрдХ рдФрд░ рдЖрдкрдХреЗ рдирдП рддреИрдирд╛рдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рд╕рдордЭрд╛рддреА рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рднреА рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

(рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд: рдЖрдо рддреМрд░ рдкрд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрддрд░ рдПрдХ Firebase рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдФрд░ рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднреАрддрд░ рд╡рд┐рднрд┐рдиреНрди рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рди рд╣реЛ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмреНрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдПрдХ рд╡реЗрдм рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдЯ рд╣реИ,) рдФрд░ рдЖрдкрдХреЗ рдбреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдЯ рдЬреЛ рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯреНрд╕ рдкрд░ рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИрдВ)ред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдСрдереЗрд╕ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЖрдкрдХреА firebase.json рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВ рдХрд┐ рдЖрдк firebase use dev , firebase deploy рдЬреИрд╕реЗ рдХреБрдЫ рднреА рдХрд░ рд╕рдХреЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВ, firebase use staging , firebase deploy , ...)

{ "firestore": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" }, "hosting": { "public": "build", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] }, "functions": { "predeploy": [ "npm --prefix \"$RESOURCE_DIR\" run lint" ] } }

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдлрд╛рдпрд░рдмреЗрд╕ рдмреИрд╢ рдЖрд░реНрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╣реИ рди рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдЬрд╕рди рдлрд╛рдЗрд▓ рдореЗрдВред

Firebase.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрдХреНрд╢рди рдХреЗ рддрд╣рдд рдЖрдкрдХреЛ "target": "dev" рдХреЗ рд▓рд┐рдП firebase deploy --only hosting:dev рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред --only рдзреНрд╡рдЬ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ target рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд┐рдирд╛ рддрдм рд╕реАрдПрд▓рдЖрдИ рдХреБрдЫ рднреА рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЬреЛ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрднреА рд╕рд┐рд░реНрдл рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдпрд╣)ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП json рдореЗрдВ, рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ json (рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛) рдХреА рдЬрдбрд╝ рдореЗрдВ рдбрд╛рд▓ рджреЗрдЧрд╛ рдпрд╛ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореЗрд░реА рдлрд╛рдпрд░рдмреЗрд╕рд░ рдлрд╝рд╛рдЗрд▓, рдореЗрд░реЗ рд░реВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдореЗрд░реА рджреВрд╕рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВ рдХрд┐ рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдХрд┐ рдХрд╣рд╛рдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдЗрд╕реЗ рдЖрдкрдХреЗ firebase.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗ:

{
// ...
  "hosting": [{ // Can be an array and have multiple configs, or an object if you've only got a single config
    "target": "blog",
    "public": "build/blog"
    // ...
  }],
// ...
}

рдпрд╣ рдбреЙрдХреНрд╕ рдкреГрд╖реНрда рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓рдХреНрд╖реНрдп рдФрд░ рдПрдХрд╛рдзрд┐рдХ рд╕рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

firebase target:apply hosting dev firebase-hosting-id рддрдм firebase-hosting-id рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдк рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЕрднреА CLI рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ firebase use рдХрдорд╛рдВрдб рд╕реЗ рд╣реИред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдЧрд▓рдд рд╕рдордЭрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдХреБрдЫ рд╣реЗрдбрд╡реЗ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдм 404 рдПрд░рд░ рдПрдВрдЯрд┐рдЯреА рдорд┐рд▓ рд░рд╣реА рд╣реИред
рддреЛ рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдореЗрдВ рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдореЗрдбреА -1 рд╣реИ рдФрд░ рдореЗрд░рд╛ рдЯрд╛рд░рдЧреЗрдЯ рдХреЙрдореЗрдбреА -1-рдПрдкреА рд╣реИ
рдЬрдм рдореИрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдкрдирд╛ рд▓рдХреНрд╖реНрдп reedy-1-api рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рдЗрд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрдХрд╛рдИ рдирд╣реАрдВ рдорд┐рд▓реАред
рдореИрдВ рдЕрдкрдиреЗ рдлрд╛рдпрд░рдмреЗрд╕рд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓рдХреНрд╖реНрдп рдХреЗ рддрд╣рдд рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ

"targets": {
   "reedy-1": {
      "hosting": {
         "dev-api": [
           "reedy-1-api"
         ]
      }
   }
}

рдЖрдкрдХреЗ .firebaserc рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рдореБрдЭреЗ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред

рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ (рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдЗрдирдХреА рдЬрд╛рдБрдЪ рдХрд░ рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЬрдм рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдареЛрдХрд░ рдЦрд╛рддреЗ рд╣реИрдВ):

  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк firebase use рд╕рд╛рде рдЙрдЪрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рд╕рд╣реА рд╣реИ (рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП firebase use --add рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо рд╕рд╣реА рд╣реИ (рдЖрд╕рд╛рдиреА рд╕реЗ <site-name>.firebaseapp.com рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)

рдпрджрд┐ рдЖрдк рдбрд┐рдмрдЧ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ 404 рдХрд┐рд╕ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реИ? рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ POST https://firebasehosting.googleapis.com/v1beta1/sites/<site-name>/versions рд╕реЗ рдЖрдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рддреИрдирд╛рддреА рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╕рд╛рдЗрдЯ рдирд╛рдо рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдпрджрд┐ рдпрд╣ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИ рддреЛ рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред

рдареАрдХ рд╣реИ, рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдХрд┐ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рдерд╛ред
рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рд╡рд┐рд╕реНрдлреЛрдЯ рдФрд░ рдКрдкрд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ 404 рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдореВрд▓реНрдп рдпреЛрдЬрдирд╛ рдХреЗ рдХрд╛рд░рдг рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред
рдЙрдиреНрдирдпрди, рдмреВрдо рдХреЗ рдмрд╛рдж, рд╕рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ред

рд╡рд╛рд╣, рд░реБрдХреЛред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмреНрд▓реЗрдЬрд╝ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдирдИ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реИ рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╛ рдпрд╣ рдерд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдмреНрд▓реЗрдЬрд╝ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдерд╛, рджреВрд╕рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдмрдирд╛рдИ, рдЕрдкрдиреА рдмрд┐рд▓рд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА?

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рднреА рдкрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдЕрдиреБрд░реЛрдз рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХ рд░рд╣рд╛ рдерд╛? рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд╡рд╣ рддреНрд░реБрдЯрд┐ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВ рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп 404 рдкрд╛рда рдХреЗ рдмрдЬрд╛рдп рдХреНрдпрд╛ рдХрд░реВрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╣рд╛рдВ, рдпрд╣ рд╕рд╣реА рд╣реИ, рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдлреНрд░реА рдЯрд┐рдпрд░ рдкрд░ рджреВрд╕рд░реА рд╕рд╛рдЗрдЯ рдмрдирд╛рдИ рд╣реИ, рддреЛ рдореБрдЭреЗ рддреИрдирд╛рддреА рдореЗрдВ рджрд┐рдХреНрдХрддреЗрдВ рдЖрдИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред рдЬрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдЧрд┐рддреБрдм рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рдЬрдм рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рддреЛ рдлрд╛рдпрд░рдмреЗрд╕ рд╡реЗрдм рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЕрдЬреАрдм рдЪреАрдЬреЗрдВ рд╣реЛрдиреЗ рд▓рдЧреАрдВред рджреВрд╕рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡реЗрдмрд╕рд╛рдЗрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рдПрдЧреАред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлрд┐рд░ рддреИрдирд╛рддреА рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЗрд╕рдиреЗ рддреИрдирд╛рддреА рдкрд░ 404 рджрд┐рдЦрд╛рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╡рд╛рдкрд╕ рдЖрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд░реВрдВрдЧрд╛, рдФрд░ рдЬрд╛рджреВ рдХреА рддрд░рд╣ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ

@isevcik рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ? рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдерд╛ рдХрд┐ рд╣рдордиреЗ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛)ред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдХрд╛рдо рдХрд┐рдпрд╛?

рдЖрдкрдХреЛ рд╢рд╛рдпрдж рд╕рдорд░реНрдерди рдореЗрдВ рдИрдореЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╣рдо рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХреЗрдВред рдЖрдкрдХреЛ рдЗрд╕ GitHub рдореБрджреНрджреЗ рдФрд░ рдореБрдЭреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡реЗ рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реЗ рднреЗрдЬрдирд╛ рд╣реИред

@isevcik рдореБрдЭреЗ рдпрд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рдереА рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдиреЛрдЯ: рдЖрдкрдХреЛ рдлрд╛рдпрд░рдмреЗрд╕ рдкрд░ рд▓рдХреНрд╖реНрдп рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдлрд╛рдпрд░рдмреЗрд╕ рд▓рдХреНрд╖реНрдп: рдкреНрд░рдХрд╛рд░ рд▓рдХреНрд╖реНрдп-рдирд╛рдо рд╕рдВрд╕рд╛рдзрди-рдирд╛рдо

https://firebase.google.com/docs/cli/targets

рдирдорд╕реНрддреЗ, рдПрдХ рд╣реА рдореБрджреНрджрд╛:

[debug] [2019-08-09T17:34:19.322Z] TypeError: Cannot read property 'deploys' of undefined
    at /Users/kevinliu/.npm-global/lib/node_modules/firebase-tools/lib/deploy/index.js:84:36
    at processTicksAndRejections (internal/process/task_queues.js:85:5)
[error] 
[error] Error: An unexpected error has occurred.

index.js :

   if (deployedHosting) {
            _.each(context.hosting.deploys, function (deploy) {
                logger.info(clc.bold("Hosting URL:"), utils.addSubdomain(api.hostingOrigin, deploy.site));
            });
            const versionNames = context.hosting.deploys.map((deploy) => deploy.version);
            return { hosting: versionNames.length === 1 ? versionNames[0] : versionNames };
        }

@ рдореИрдВ рднреА рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдЖрдкрдиреЗ рдХреНрдпрд╛ рдмрджрд▓рд╛?

[debug] [2019-08-16T18:44:01.159Z] TypeError: Cannot read property 'deploys' of undefined
    at C:\Users\Kraken\AppData\Roaming\npm\node_modules\firebase-tools\lib\deploy\index.js:84:36
    at process._tickCallback (internal/process/next_tick.js:68:7)
[error] 
[error] Error: An unexpected error has occurred.

рдХреНрдпрд╛ @Memeriaj рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

@MaxInertia рд╣рд╛рдБ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдлреЙрд░реНрдореЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреА рдкреВрд░реА рдорд╢реАрди рдХреЛ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ :-)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рддрдм рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдореМрдЬреВрдж рдЯрд╛рд░рдЧреЗрдЯ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ред рдореИрдВ рджреЛ рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдпрд░рдмрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реВрдБрдЧрд╛ред рдпрджрд┐ рдЖрдк рджреВрд╕рд░реА рд░рд╛рдп рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рд╛рдордЧреНрд░реА рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдмрд╛рдд, рдЬрдм 7.3.1 рдХреЗ рд╕рд╛рде рджреНрд╡рд┐рддреАрдпрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддреНрд░реБрдЯрд┐ firebase.json рдореЗрдВ рдереА, рдореИрдВрдиреЗ рдЧрд▓рдд "рд▓рдХреНрд╖реНрдп" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ

рдореИрдВ рдЗрд╕ рдЧрд╛рдЗрдб рдХреА рдорджрдж рд╕реЗ рдПрдХ рдирдпрд╛ рддреИрдирд╛рддреА рд▓рдХреНрд╖реНрдп рдмрдирд╛рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:

https://firebase.google.com/docs/hosting/multisites?authuser=1#set_up_deploy_targets

рдореИрдВрдиреЗ рдПрдХ рдЖрджреЗрд╢ рдЬрд╛рд░реА рдХрд┐рдпрд╛:

firebase target:apply hosting blog myapp

рдФрд░ рдореЗрд░реЗ firebase.json target рдХреБрдВрдЬреА рдЬреЛрдбрд╝ рджреА

{
  "hosting": {
    "target": "myapp",
    ...
  }
  ...
}

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрджрдо рд░рдЦрд╛ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмреНрд░рд╛рдВрдб рдХреЗ рдирдП рдлрд╛рдпрд░рдмреЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЕрдкрдиреА рдкрд╣рд▓реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХреАред

рдореИрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рдерд╛ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдбреЙрдХреНрд╕ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рддреИрдирд╛рддреА рд▓рдХреНрд╖реНрдп рдмрдирд╛рдпрд╛: $ рдлрд╛рдпрд░рдмреЗрд╕ рд▓рдХреНрд╖реНрдп: рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд▓рдХреНрд╖реНрдп-рдирд╛рдо рд╕рдВрд╕рд╛рдзрди-рдирд╛рдо рд▓рд╛рдЧреВ рдХрд░реЗрдВ , рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдореБрдЦреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд╕рд╛рдзрди рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЙрд╕ .firebaserc рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдлрд╛рдпрд░рдмреЗрд╕ рддреИрдирд╛рддреА рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг:

"targets": {
    "firebase-project-name": {
      "hosting": {
        "admin": [
          "admin-project"
        ]
      }
    }
  }

рдирдорд╕реНрддреЗ рдореИрдВ рднреА рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ (рдХрд╕реНрдЯрдо рдЬреЛрдбрд╝рд╛ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП)

рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдЬреЛрдбрд╝рд╛ рдбреЛрдореЗрди рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ

рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди 3dprinter.froozen.in рд╣реИ (рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдЕрдВрджрд░ рдлрд╛рдпрд░рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛)
рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЛрдореЗрди рдХреЗ рдЕрдВрджрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ

рд╣рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рд╡рд┐рдлрд▓ рдХреЙрд▓ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдбрд┐рдмрдЧ рд▓реЙрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рджрд╛рди рдХрд░реЗрдВред

рд╕рдд, 4 рдЬрдирд╡рд░реА, 2020 рдХреЛ, 12:52 рдкреВрд░реНрд╡рд╛рд╣реНрди рдирд╛рдВрдзрд╛ рд╕реВрдЪрдирд╛рдПрдБ @ithub.com рдиреЗ рд▓рд┐рдЦрд╛:

рд╣рд╛рдп рднреА рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ (рдХрд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП)
рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдбреЛрдореЗрди)

рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред рдкрд░рдВрддреБ
рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдЬреЛрдбрд╝рд╛ рдбреЛрдореЗрди рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ

рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди 3dprinter.froozen.in рд╣реИ (рдЕрдВрджрд░ рдлрд╛рдпрд░рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ
рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ)
рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЛрдореЗрди рдХреЗ рдЕрдВрджрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/firebase/firebase-tools/issues/1232?email_source=notifications&email_token=AAAAH7SNCPUEIMIWCDHK6CDQ4BE3JA5CNFSM4HJJKJJJ2YY3PNVWH8H8648648648&hl=hi&hl=hi
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAAAH7V26G3YF6Q7FYDP5QTQ4BE4JANCNFSM4HJWK5JQ
ред

рд╣рд╛рдп @ рдордВрдмреЗ ,

рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдореБрджреНрджрд╛ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛

  1. рдбреЛрдореЗрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдВрдХ рдирд╣реАрдВ рдерд╛
  2. рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ Firebase.json рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
    рдЬрдм рджреЛрдиреЛрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдпрджрд┐ рдХреЛрдИ рдФрд░ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкреНрд░рд╢реНрди рд╣реЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ

"рддреНрд░реБрдЯрд┐: HTTP рддреНрд░реБрдЯрд┐: 404, рдЕрдиреБрд░реЛрдзрд┐рдд рдЗрдХрд╛рдИ рдирд╣реАрдВ рдорд┐рд▓реА" рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ "рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА

`` `
"рд▓рдХреНрд╖реНрдп": {
"рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо": {
"рдореЗрдЬрдмрд╛рдиреА": {
"рджреЗрд╡": [
"Dev.site.com"
],
"рдареЗрд╕": [
"Site.com"
]
}
}
}


istead of

 ```
"targets": {
    "projectname": {
      "hosting": {
        "dev": [
          "dev-site-name"
        ],
        "prod": [
          "ez-site-name"
        ]
      }
    }
  }

рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдореЗрд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛:

  1. .firebaserc рдХреЗ рдкрд╛рд╕ targets.<PROJECT_ID>.hosting.<TARGET_NAME> = [ "<HOST_ID" ] рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
{
  "projects": {
    "default": "my-project-id"
  },
  "targets": {
    "my-project-id": {
      "hosting": {
        "my-blog": [
          "my-blog-host-id"
        ]
      }
    }
  }
}

targets рд╣рд┐рд╕реНрд╕рд╛ рдХрдорд╛рдВрдб firebase target:apply hosting my-blog my-blog-host-id рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

  1. firebase.json рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ hosting рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП target: <TARGET_NAME> рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
{
  "hosting": [{
    "target": "my-blog",
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }]
}

рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ hosting рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рдЖрдЗрдЯрдо рдореЗрдВ target рдЬреЛрдбрд╝реЗрдВред

рдореИрдВ рдЖрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рд╕реЗ рдорд╛рд░рд╛ рдЧрдпрд╛, Firebase.json hosting рдХреЛ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд░реНрджрдирд╛рдХ рд╣реИ!

рдЕрдм рдореБрдЭреЗ рд╣рд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдЗрд╕рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдХрд┐ рд╕рднреА рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реЗрдбрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИрдВ, рдЕрдЪрд╛рдирдХ 4x json рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореБрдЭреЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡реИрд╕реЗ рднреА рдлрд╛рдпрд░рдмреЗрд╕ рдЬреЛрдВрд╕ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?

рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ "рд╡рд╛рддрд╛рд╡рд░рдг" рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ - рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "рдордВрдЪрди", "рджреЗрд╡", рдЖрджрд┐ рд╕рд╛рдЗрдЯ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рд╛рдЗрдЯреЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ firebase use рдХрдорд╛рдВрдб рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ / рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП firebase.json рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреНрдпреЛрдВ рд╕рдорд╛рди рд╣реИрдВ?

рдареАрдХ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░рдХрдо рджреЗрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬреАрд╕реАрдкреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдирд╡реА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдПрдирд╡реАрд╡реА рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рди рдХрд┐ рд╕рд┐рд░реНрдл рдлрд╛рдпрд░рдмреЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ), рдореМрдЬреВрджрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд▓ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдПрдХ рдпрд╛ рджреЛ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП GCP рдкрд░рд┐рдпреЛрдЬрдирд╛, рдПрдХ рдирдпрд╛ рдПрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдпред

рдЗрд╕ рдПрдЯреАрдПрдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдП рдЧрдП рдлрд╛рдпрд░рдмреЗрд╕ рд╕реЗред 5 рдмрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝рдирд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднреНрд░рдо рдХрд╣рд╛рдБ рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рддреЛ рдЙрдореНрдореАрдж рд╣реЛрдЧреА рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рдЧрд▓рддрдлрд╣рдореА рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ + рд▓рдХреНрд╖реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЖ рдЬрдмрдХрд┐ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рджрд┐рдЦрд╛рдИ рдЧрдИред
2020-06-22T17:20:39.837Z] TypeError: Cannot read property 'deploys' of undefined

рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреБрд░рд╛ рд╣реИ, рдФрд░ FWIW рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЕрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд bad

рдмрд╕ "рд╕рд░рдгреА рдлрд┐рдХреНрд╕" рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╕рд╛рдЗрдЯреЗрдВ рддреИрдирд╛рдд рд╣реИрдВ, рдореИрдВ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд▓рдХреНрд╖реНрдп рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реА рд╕рд╛рдЗрдЯ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:

{ "hosting": [ { "target": "web", "public": "public", "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], "rewrites": [ { "source": "**", "destination": "/index.html" } ] }, { "target": "admin", "public": "build", "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } ] }

рд▓реЗрдХрд┐рди рдлрд┐рд░ "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ" рдиреЗ рдПрдХ рд░рд┐рдХреНрдд рдкреГрд╖реНрда рд▓реМрдЯрд╛рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЪрд╛рд▓ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмрд┐рдВрджреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ред
"public": "build",

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдКрдкрд░ рдФрд░ рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИред рдлрд┐рд░ рднреА рдореБрдЭреЗ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ рдХрд┐рд╕ рд▓рдХреНрд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╣реА рдмрддрд╛рдИ рдЧрдИ рд╣реЛрдВред рдХреНрдпрд╛ рдКрдкрд░ рдХреБрдЫ рдФрд░ рдХрд╡рд░ рдирд╣реАрдВ рд╣реИ?

  1. рд░рди: firebase target:apply hosting second-project-id second-project-id

  2. рдлрд┐рд░ .firebaserc рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рдЦрддрд╛ рд╣реИ
    `{
    "рд▓рдХреНрд╖реНрдп": {

    "рдореБрдЦреНрдп-рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рдЖрдИрдбреА": {
    "рдореЗрдЬрдмрд╛рдиреА": {
    "рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛-рдЖрдИрдбреА": [
    "рджреВрд╕рд░реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛-рдЖрдИрдбреА"
    ]
    }
    }
    }
    } `

  3. рдлрд┐рд░ firebase.json рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ
    "рд▓рдХреНрд╖реНрдп": "рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛-рдЖрдИрдбреА",

рд╣рдореНрдо, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ .firebaserc рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

{
  "projects": {
    "default": "mainProjectId"
  },
  "targets": {
    "mainProjectId": {
      "hosting": {
        "production": [
          "mainProjectId"
        ],
        "staging": [
          "secondProjectId"
        ]
      }
    }
  }
}
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

SJAnderson picture SJAnderson  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

repentsinner picture repentsinner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kyleabens picture kyleabens  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

roosi picture roosi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

francisrod01 picture francisrod01  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ