Firebase-tools: рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЙрдбреНрдпреВрд▓ '@ рдХрд╕реНрдЯрдо-рдореЙрдбреНрдпреВрд▓ / рдореЙрдбреНрдпреВрд▓рдирд╛рдо' рдирд╣реАрдВ рдЦреЛрдЬ рд╕рдХрддрд╛

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

рд╣реЗ, рджреЛрд╕реНрддреЛрдВ ~ рдЬрдм рдореИрдВ $ # $ 1 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 1 $ $ 1 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ paths tsconfig.json

{
  "compilerOptions": {
    "lib": ["es6"],
    "module": "commonjs",
    "outDir": "lib",
    "rootDir": "src",
    "target": "es6",
    "sourceMap": true,
    "noImplicitReturns": true,
    "baseUrl": ".",
    // here, I assign a paths arguments
    "paths": {
      "@custom-modules/*": ["src/modules/*"],
    }
  },
  "compileOnSave": true,
  "include": ["src"]
}

paths рддрд░реНрдХ рдЖрдорддреМрд░ рдкрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд╛рдпрд░рдмреЗрд╕ рддреИрдирд╛рдд рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ:

Error: Error parsing triggers: Cannot find module '@custom-modules/moduleName'

рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ StackOverFlow рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдХреНрд▓рд╛рдЙрдб рдлрдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде TS рдкрд╛рде рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ , рдФрд░ рдЕрдм рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж ~ ЁЯдг

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

рдирдорд╕реНрддреЗ! рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред
рдореЗрд░реЗ рдЕрдиреНрдп Node.js + рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЖрдЙрдЯрдкреБрдЯ рдЬреЗрдПрд╕ рдореЗрдВ рдкрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореИрдВ рдкрд╛ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рд╣реИ https://github.com/dividab/tsconfig-paths#with -node, рдЬреЛ tsconfig.json рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Node.js рдкрдереЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрджрд▓рддрд╛ рд╣реИред рдпрд╣ -r tsconfig-paths/register рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ register (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ index.ts рдХреЗ рд╢реАрд░реНрд╖ рдкрд░) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рд╣реЛрдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдереЛрдбрд╝реЗ common рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ frontend рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде ../../../common index.ts рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдмрджрд╕реВрд░рддред рд╕рдмрдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВред

рддреЛ рд╢рд╛рдпрдж рд╕реНрдерд╛рдиреАрдп рдФрд░ рдЙрддреНрдкрд╛рджрди рджреЛрдиреЛрдВ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рд╕рд╣рд┐рдд рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ -r tsconfig-paths/register рддрд░реНрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ?

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

рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реА рд╕рдордЭ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рд╕реНрдерд╛рди рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП baseUrl рдФрд░ paths рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рджреЛ рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ _not_ рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рдХреЛ _include_ рдХреЛ рдмрддрд╛рддреА рд╣реИрдВ рдХрд┐ рдЙрди рдореИрдк рдХрд┐рдП рдЧрдП рдкрде рд╕рдВрдХрд▓рди рдореЗрдВ рд╣реИрдВ рдпрд╛ рд╕рдВрдХрд▓рди рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП import рдХрдерди рдмрджрд▓рддреЗ рд╣реИрдВред рд╕рдВрдХрд▓рд┐рдд lib рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ @custom-modules/* import рдХрдерди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рддреНрд░реБрдЯрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЖ рд░рд╣реА рд╣реИ рдХрд┐ рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╕реАрдПрд▓рдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреЛрдИ рдЬреНрдЮрд╛рди рдирд╣реАрдВ рд╣реИ (рдпрд╣ lib рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ, рдпрд╛рдж рд░рдЦреЗрдВ), рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдЙрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреА рд╣реИред

рдпрджрд┐ рдЖрдк import ... from "@custom-modules/..."; рдХрд░ рдХреБрдЫ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рд░реАрдореИрдкрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рд╛рдкреЗрдХреНрд╖ рдЖрдпрд╛рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╡реИрд╕реЗ рднреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ baseUrl рдФрд░ paths рдХрд╛ рдЙрддреНрддрд░ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдк рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ! рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред
рдореЗрд░реЗ рдЕрдиреНрдп Node.js + рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЖрдЙрдЯрдкреБрдЯ рдЬреЗрдПрд╕ рдореЗрдВ рдкрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореИрдВ рдкрд╛ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рд╣реИ https://github.com/dividab/tsconfig-paths#with -node, рдЬреЛ tsconfig.json рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Node.js рдкрдереЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрджрд▓рддрд╛ рд╣реИред рдпрд╣ -r tsconfig-paths/register рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ register (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ index.ts рдХреЗ рд╢реАрд░реНрд╖ рдкрд░) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рд╣реЛрдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдереЛрдбрд╝реЗ common рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ frontend рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде ../../../common index.ts рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдмрджрд╕реВрд░рддред рд╕рдмрдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВред

рддреЛ рд╢рд╛рдпрдж рд╕реНрдерд╛рдиреАрдп рдФрд░ рдЙрддреНрдкрд╛рджрди рджреЛрдиреЛрдВ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рд╕рд╣рд┐рдд рдлрд╛рдпрд░рдмреЗрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ -r tsconfig-paths/register рддрд░реНрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ https://www.npmjs.com/package/module-alias рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

  1. рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ /src/fixTsPaths.ts рдмрдирд╛рдПрдВ:

    import * as ModuleAlias from 'module-alias'
    
    ModuleAlias.addAliases({
      helpers: __dirname + '/helpers',
    })
    
  2. рдЗрд╕реЗ /scr/index.ts рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВред

    import * as functions from 'firebase-functions'
    import * as admin from 'firebase-admin'
    import './fixTsPaths'
    
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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