Next.js: рдиреЗрдХреНрд╕реНрдЯ рдкреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕реЗ рдХреИрд╕реЗ рдмрджрд▓реЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдЬреБрд▓ре░ 2018  ┬╖  32рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vercel/next.js

рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ .js рдлрд╝рд╛рдЗрд▓ рдПрдХ рдорд╛рд░реНрдЧ рдмрди рдЬрд╛рддреА рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдБ?

рдореИрдВ src/рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

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

рдкрддрд╛ рдирд╣реАрдВ рдпреЗ рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдХреНрдпрд╛ рдХрд╣ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрдЧрд▓рд╛ рд╣реИредjs рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕реЗ рдкреГрд╖реНрдареЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ:

$ next ./src
$ next dev ./src
$ next build ./src
$ next start ./src -p 8080

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

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, dir рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ ./src рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛:

const next = require('next')({
  dev,
  dir: './src'
})

рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдПрдкреАрдЖрдИ (рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдиреНрдп рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╕реНрдерд╛рди рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ (рдЬреИрд╕реЗ next.config.js рдФрд░ static рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ)ред

рдкрддрд╛ рдирд╣реАрдВ рдпреЗ рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдХреНрдпрд╛ рдХрд╣ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрдЧрд▓рд╛ рд╣реИредjs рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕реЗ рдкреГрд╖реНрдареЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ:

$ next ./src
$ next dev ./src
$ next build ./src
$ next start ./src -p 8080

рдЖрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдХреГрдкрдпрд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ (рдмрдВрдж рдореБрджреНрджреЛрдВ рд╕рд╣рд┐рдд) рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рд╢реНрди рдХрд╛рдлреА рдмрд╛рд░ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рд╣реИ .

@timneutkens рдореЛрдореЗрдВрдЯ.рдЬреЗрдПрд╕ рдХреЗ рдЕрдиреБрд░рдХреНрд╖рдХ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╕реАрдЖрд░рдП рдореЗрдВ рднреА, рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯреНрд╕ рдореЗрдВ src рдлрд╝реЛрд▓реНрдбрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдлрд╛рдЗрд▓реЗрдВ рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВред

рдЪреВрдВрдХрд┐ рдпрд╣ рдЦреЛрдЬрддреЗ рд╕рдордп Google рдкрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдирд┐рд░реНрдгрдп @timneutkens рдХреЗ рдкреАрдЫреЗ рддрд░реНрдХ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛрдЧрд╛?

рдЬреИрд╕рд╛ рдХрд┐ @brainkim jus рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ json рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ ./src рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВред рдЖрдк рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдЕрдЧрд▓реЗ рдбрд┐рд╕реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИ (рдореИрдВ рд░реВрдЯ рдореЗрдВ рдбрд┐рд╕реНрдЯ рдЪрд╛рд╣рддрд╛ рдерд╛)ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдлреЛрд▓реНрдбрд░ рдХреЛ ../ рдХреЗ рд╕рд╛рде рдкреНрд░реАрдкреЗрдиреНрдб рдХрд░рддреЗ рд╣реИрдВред

// src/next.config.js
module.exports = {
  distDir: '../dist'
}
// package.json
  "scripts": {
    "dev": "next ./src",
    "build": "next build ./src",
    "start": "next start ./src",
    ..
  },

@msegers рдореИрдВ рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдХрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

Cannot find module 'next/document'
Cannot find module 'next/error'
...

HTTP рдЕрдиреБрд░реЛрдз рдкрд░ (рдЖрдпрд╛рдд рдЪрд░рдг рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ)ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ?

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

рдЕрддрд┐рд░рд┐рдХреНрдд: pages рд╕реЗ client/pages рдХреЛ рд╕рд┐рдорд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рд╣реЙрдЯ рд░реАрд▓реЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд╛рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реБрдЖ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рджреБрдЦреА :(

@msegers рд╕реБрдЭрд╛рд╡ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдпрджрд┐ рдЖрдк рдЕрдЧрд▓рд╛-i18next рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ NextI18 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рд╣реА рд▓реЛрдХреЗрд▓рдкрд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ: localePath: 'src/static/locales/',

рдРрд╢реЗ рд╣реА :

NextI18NextInstance = new NextI18Next({
  defaultLanguage: 'en',
  otherLanguages: ['en'],
  debug: true,
  localePath: 'src/static/locales/',
});

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рднреВрдЦ рд╣реИ - рдЬрд╣рд╛рдВ рдореЗрд░реЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рд╡рд╣рд╛рдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред

@malimccalla рдЖрдк https://github.com/slaterbbx/fullstackinator

рдЪреЗрддрд╛рд╡рдиреА

рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ, "рдкреГрд╖реНрда" рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдХреИрд╕реЗ

рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЗрдЦреЗрдВ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬрд╝реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рд╡рд╣ рдПрдХ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдкрд░рд┐рджреГрд╢реНрдп + рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рдмрд╛рдд рд╣реИ, рдореВрд▓ рдЪреАрдЬреЗрдВ рд╣реИрдВред

  1. package.json рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, "npm рд░рди рджреЗрд╡" рдХреЗ рд▓рд┐рдП рдмрд╕ (рдЕрдЧрд▓рд╛) рдХреЗ рдмрдЬрд╛рдп рдлрд╝реЛрд▓реНрдбрд░ ( рдЕрдЧрд▓рд╛ ./client ) рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ / рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВ
  2. рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ ( ./client ) рдЖрдкрдХреЛ рдПрдХ next.config.js рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рддреЛ рдмрд╕ рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
module.exports = {
    distDir: '../.next' // so that you can tell it to go up a folder for the dev and prod files.
}

рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдореБрдЭреЗ рдПрдХ рдИрдореЗрд▓ рдХрд░реЗрдВ рдпрд╛ рдпрд╣рд╛рдБ рднреА рдареАрдХ рд╣реИред

рдЕрджреНрдпрддрди: рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдКрдкрд░ @brainkim рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрддрд╛ рд╣реИ .. рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @slaterbbx

рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХреЛ рд╕рд╣-рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

тФЬтФАтФА components
|   тФЬтФАтФА  GridItem.tsx
|   тФЬтФАтФА  Avatar.tsx
|   тФФтФАтФА  Button.tsx
тФЬтФАтФА pages
|   тФФтФАтФА profile
|       тФФтФАтФА components
|       |   тФЬтФАтФА CoverPhoto.tsx
|       |   тФФтФАтФА UserInterests.tsx
|       тФЬтФАтФА data.ts
|       тФЬтФАтФА styles.ts
|       тФФтФАтФА index.tsx

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдореБрджреНрджрд╛ (рдЬреИрд╕рд╛ рдХрд┐ @timneutkens рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдпрд╣ рд╣реИ рдХрд┐ pages рднреАрддрд░ рдХреА рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реЗрдмрдкреИрдХ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрджрд▓реЗ рдореЗрдВ рдХреЙрдордирдЪрдВрдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦрдбрд╝рд╛ рд╣реИ рдЕрдЧрд▓рд╛ рдХреЗрд╡рд▓ pages рднреАрддрд░ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдкреГрд╖реНрда рдШрдЯрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдкреГрд╖реНрдареЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ (рдЙрдЪрд┐рдд?) рд╕рдВрд░рдЪрдирд╛ рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ config рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ

pages: ["./pages/*/index.tsx"]

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ

pages: ["./pages/*", "./admin-pages/*"]

рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛ рдЕрдкрдиреЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдХреБрдЫ рдЕрд▓рдЧ рдирд╛рдо рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

pages: ["./views/*"]

рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛ рд╕рд┐рд░реНрдл рдкрде рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

pages: ["./src/custom/path/to/pages/*"]

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдХрдЯреНрдЯрд░рдкрдВрдереА рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ( рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ workspaces рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдкреИрдЯрд░реНрди Next.js рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ )ред

@malimccalla рдЖрд╣, рд╣рд╛рдБ, рдЖрдкрдХреЗ рджреБрдГрдЦ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭреЗрдВ, рдореИрдВ рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рдЪреАрд▓рд╛ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╕рдВрднрд╡рддрдГ рдПрдХ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рд▓рд╛рдпрдХ рднреА рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ (рдХрд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрд╕ рдкрд░ рдЙрджреНрдзреГрдд рди рдХрд░реЗрдВ) рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рд╡реЗрд╢ рдХрд░рдирд╛ рдПрдХ рдЦреЛрдпрд╛ рд╣реБрдЖ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рддрдХ рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдпреЛрдЧрджрд╛рди рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗ, рддрдм рдлрд┐рд░ рд╕реЗ, рдЙрдкрдХреНрд░рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ тАНтЩВя╕П

@malimccalla рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЗрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдпрд╛ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреА pages рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рдорддрд▓ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдкреГрд╖реНрда рдЙрдк-рдШрдЯрдХреЛрдВ рдХреЛ рдХрд╣реАрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛?

@joncursi рдореИрдВ pages рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ views рдФрд░ рдлрд┐рд░ рдПрдХ рдирдИ pages рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЬрд┐рд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрджреНрджреЗрд╢реНрдп рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдкреГрд╖реНрда рдШрдЯрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП pages/profile.tsx рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

export { default } from "../views/profile"  

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

@folofse i18n localePath рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рдЬрдм рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдлрд┐рд░ рд╕реЗ src рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдХрд░реЗрдВ?

рдореИрдВрдиреЗ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рд▓реЙрдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдмрдЧ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ (i18next)

...
  localePath: 'src/static/locales',
  localeStructure: '{{lng}}/{{ns}}',
  localeSubpaths: 'foreign',
  backend:
   { loadPath:
      'V:/dev/some-project/static/locales/{{lng}}/{{ns}}.json',
     addPath:
      'V:/dev/some-project/static/locales/{{lng}}/{{ns}}.missing.json' },
  allLanguages: [ 'de', 'de' ],

рд▓реЛрдбрдкрд╛рде *\static\locales рдкрд░ рд╕реЗрдЯ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ *\src\static\locales рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рд╢реНрди:

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ /projectRoot/next-web/server.js рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓ рд╣реИ

рдпрд╣ /projectRoop/next-renderer-universal/client рддрд░рд╣ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ:

// in /projectRoot/next-web/server.js
const nextApp = next({
  dev: NODE_ENV !== 'production',
  dir: APP_DIR,
  quiet: false,
});

рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рдФрд░ рднреЗрдЬрддреЗ рд╣реИрдВ :)?

@armenr рдореЗрд░рд╛ рдпрд╣ рдЫреЛрдЯрд╛ рдРрдк рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдХрд╕реНрдЯрдо рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ ( src/server.ts ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ next() :
https://gitlab.com/kachkaev/website-frontend/blob/e1c7106cf63811f6341c4bd47dd2354eb2546914/src/server.ts#L11 -18

рд╕рднреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ PROJECT_ROOT/src (рдпрд╛ рдЕрдиреНрдп рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд░рдЦрдирд╛ Next.js рдореЗрдВ рдХрд╛рдлреА рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИред рдиреЗрдХреНрд╕реНрдЯ 9 рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд TS рдПрдХреАрдХрд░рдг рдХреЗ рдХрд╛рд░рдг, рдЪреАрдЬреЗрдВ рдФрд░ рднреА рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдХрд╛рд╢ https://github.com/zeit/next.js/issues/4315 рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ред

:) рдореИрдВрдиреЗ рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЬреЛ рдкреНрд░рд╢реНрди рдкреВрдЫ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рдЕрдиреНрдп рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рд╕реЗ рдЬрдЯрд┐рд▓ рдерд╛

рд╣рдордиреЗ рддрдм рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдирдореВрдирд╛ рдХреЛрдб рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА! рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж :)

@armenr рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ? рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд░реНрди рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЕрднреА рднреА рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рд╡рд╢ рд╣реВрдВред

@ рдЕрдиреВрдк рдЧреБрдкреНрддрд╛

Lerna, monorepo, рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░, рдФрд░ рдЕрд▓рдЧ packages.

рдореИрдВрдиреЗ рд╕рднреА рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЛрдб рдХреЛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ renderer-universal ред рдлрд┐рд░ рдореЗрд░реЗ рдкрд╛рд╕ next-web рдирд╛рдордХ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдЕрдкрдирд╛ рдХрд╕реНрдЯрдо рдЕрдЧрд▓рд╛ рд╕рд░реНрд╡рд░ рд░рдЦрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдкреИрдХреЗрдЬ рднреА рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ nextron рд░рдЦрддрд╛ рд╣реВрдВ (рдЕрдЧрд▓рд╛ + рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди ... рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЙрдиреНрд╣реЗрдВ рдЧрд┐рдЯрд╣рдм рдкрд░ рджреЗрдЦреЗрдВ)ред

рдиреЗрдХреНрд╕реНрдЯрд░реЙрди рдФрд░ рдиреЗрдХреНрд╕реНрдЯ-рд╡реЗрдм рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░.рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

const nextApp = next({
  dev: NODE_ENV !== 'production',
  dir: APP_DIR,
  quiet: false,
});

рдФрд░ рдореИрдВ рдЙрди рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдирдПрдирд╡реА рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдВрдбрд░рд░-рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреИрдХреЗрдЬ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рдЕрдиреНрдп рд▓рд░реНрди рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рднреА рд╣реИред

рдХреЛрдИ рдХрд╕реНрдЯрдо рд╡реЗрдмрдкреИрдХ/рдмреЗрдмреЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рд╕рд┐рдореНрд▓рд┐рдВрдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЖрдо рддреМрд░ рдкрд░, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:

  - api
  - pages
  - utils

рд╢реАрд░реНрд╖ рд╕реНрддрд░ src рдлрд╝реЛрд▓реНрдбрд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдФрд░ рдХрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ рдирд╣реАрдВ ?

@ revskill10 рд╣рд╛рдБ , рдореИрдВрдиреЗ рднреА рдЙрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреАред

рд╣рдо рдЕрдкрдиреЗ рдРрдк рдФрд░ рд╕реЗрд╡рд╛рдУрдВ + рдиреЗрдХреНрд╕реНрдЯрдЬреЗрдПрд╕ рдХреЛ рдбреЗрд╕реНрдХрдЯреЙрдк/рдХреНрд▓рд╛рдЙрдб рд╣рд╛рдЗрдмреНрд░рд┐рдб рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡реЗрдм рдмрд┐рд▓реНрдб рджреЛрдиреЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

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

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

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рд╣рдо рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░.рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп /api рд▓реЗрдЖрдЙрдЯ рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдиреЗрдХреНрд╕реНрдЯ 9 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрднреА рддрдХ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡реЗрдм + рдиреЗрдХреНрд╕рдЯреНрд░реЙрди рдХреЛ рдПрдХ рд╕рд╛рде рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛/рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

@armenr рдХреНрдпрд╛ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХрд╛ рднрдВрдбрд╛рд░ рд╕реНрдерд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд▓рдЧрддрд╛ рд╣реИред

distDir: '../dist', рдкрджреНрдзрддрд┐ рдЕрдм рдиреЗрдХреНрд╕реНрдЯ 9 рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ src dir рдореЗрдВ tsconfig.json рдмрдирд╛рддрд╛ рд╣реИред

рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХреБрдЫ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдП рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЬрдбрд╝ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ ... рдРрд╕реА рдЧрдбрд╝рдмрдбрд╝реА

image

рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХреБрдЫ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдП рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЬрдбрд╝ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ ... рдРрд╕реА рдЧрдбрд╝рдмрдбрд╝реА

image

рдпрджрд┐ рдЖрдк рдкрде рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдЕрдкрдиреЗ tsconfig.json рдореЗрдВ рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ

рдпрд╣ 2017 рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рднреЗрдЬрдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@timneutkens рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

рдпрд╣рд╛рдВ рдЬрд╡рд╛рдм рджрд┐рдпрд╛, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред
https://github.com/zeit/next.js/issues/4315#issuecomment -522263598

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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