Next.js: [рдЕрдЧрд▓рд╛ 9] рдРрдк рдмрдирд╛рддреЗ рд╕рдордп рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░

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

рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ

рдиреЗрдХреНрд╕реНрдЯ 8 рд╕реЗ рдиреЗрдХреНрд╕реНрдЯ 9 рдкрд░ рдПрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЛ рдореВрд╡ рдХрд░рдирд╛ред
рдЬрдм рдореИрдВ next build рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓реА рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИред

FYI рдХрд░реЗрдВ, рдпрд╣ рдХрдо рд╕реЗ рдХрдо 20 рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред

рдкреНрд░рдЬрдирди рдХрд░рдирд╛

рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрд▓рдд рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЕрдЧрд▓реЗ 8 рдореБрджреНрджреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди Next9 рдирд╣реАрдВред

рдпрд╣рд╛рдБ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╣реИред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдзрд┐рдХ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдЖрдЙрдЯрдкреБрдЯ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдФрд░ рдореИрдВ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛:



<--- Last few GCs --->

[28143:0x102634000]   231190 ms: Mark-sweep 1278.7 (1441.0) -> 1263.4 (1438.5) MB, 838.4 / 0.0 ms  (average mu = 0.290, current mu = 0.268) allocation failure scavenge might not succeed
[28143:0x102634000]   231308 ms: Scavenge 1278.1 (1438.5) -> 1266.6 (1440.0) MB, 8.2 / 0.0 ms  (average mu = 0.290, current mu = 0.268) allocation failure 
[28143:0x102634000]   231365 ms: Scavenge 1279.3 (1440.0) -> 1271.6 (1443.0) MB, 21.6 / 0.0 ms  (average mu = 0.290, current mu = 0.268) allocation failure 


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x3547db9dbe3d]
Security context: 0x3a36ebf9e6e1 <JSObject>
    1: DoJoin(aka DoJoin) [0x3a36ebf85e89] [native array.js:~87] [pc=0x3547dcd9a7d0](this=0x3a366f3826f1 <undefined>,l=0x3a368f6eb2b9 <JSArray[10]>,m=10,A=0x3a366f3828c9 <true>,w=0x3a36c3aafc69 <String[1]: />,v=0x3a366f3829a1 <false>)
    2: Join(aka Join) [0x3a36ebf85ed9] [native array.js:~112] [pc=0x3547dd85bb38](this=0x3a366f3826f1 <undefined>,l=0x3a368f6...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x10003ae75 node::Abort() [/usr/local/bin/node]
 2: 0x10003b07f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
 3: 0x1001a7ae5 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
 4: 0x100572ef2 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
 5: 0x1005759c5 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/usr/local/bin/node]
 6: 0x10057186f v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]
 7: 0x10056fa44 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
 8: 0x10057c2dc v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
 9: 0x10057c35f v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
10: 0x10054e1e4 v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/usr/local/bin/node]
11: 0x10082784d v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
12: 0x3547db9dbe3d 
[1]    28142 abort      npm run build:next

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

рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ, рддреЛ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЛрдбрд╝реЗрдВред

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

  • OS: macOS
  • рдиреЛрдб: 10.13.0 (рдЗрд╕реЗ рдиреЛрдб 8.X рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛)
  • Next.js рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг: 9.0.1

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн

рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВред

needs investigation

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

@timneutkens рдХреГрдкрдпрд╛ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд░реЗрдкреЛ рд╣реИ?

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

рдкреНрд░рдЬрдирди рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рд╣рд╛рдБ рдореБрдЭреЗ рдкрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ sourcemaps рдХреА рдкреАрдврд╝реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдореЗрдореЛрд░реА рдвреЗрд░ рд╣реЛ рд░рд╣рд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдФрд░ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореВрд▓ рд╕рд░рдгреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдорд┐рд▓рд╛ред

рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

FYI рдХрд░реЗрдВ рдпрд╣ рдЕрдм рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЬреЛрдбрд╝реА:

NODE_OPTIONS="--max_old_space_size=4096"

рдпрд╣ 28 рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ 30 рдорд╛рд░реНрдЧ рджреЗрддрд╛ рд╣реВрдВ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 31 рдорд╛рд░реНрдЧ рд╣реИрдВ) рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА 3GB рддрдХ рдореЗрдореЛрд░реА (рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ) рддрдХ рдЬрд╛рддреА рд╣реИред рдореИрдВ рдПрдХ рдФрд╕рдд рд▓реИрдкрдЯреЙрдк рдкрд░ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ 8GB рдореЗрдореЛрд░реА рд╣реИ, рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред
рдпрджрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдБ рдирд┐рд░реНрдорд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЗ рдЖрдБрдХрдбрд╝реЗ рд╣реИрдВ:

image

рдЬрдм рдпрд╣ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ (рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп) рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддреА рд╣реИред

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

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

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рд╕реАрдЖрдИ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реНрдХрд▓рд╕реАрдЖрдИ рдореЗрдВ рдЕрдкрдирд╛ рдРрдк рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

Exited with code 137
Hint: Exit code 137 typically means the process is killed because it was running out of memory
Hint: Check if you can optimize the memory usage in your app
Hint: Max memory usage of this container is 4284268544
 according to /sys/fs/cgroup/memory/memory.max_usage_in_bytes

рдПрдХ рд╕рд░реНрдХрд▓рд╕реАрдИ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП 4 рдЬреАрдмреА рдореЗрдореЛрд░реА рдХреА рд╕реАрдорд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐ред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдиреЗрдХреНрд╕реНрдЯ 9 рдХреЗ рд╕рд╛рде рд╣рдо рдЙрд╕ рд╕реАрдорд╛ рдХреЛ рдорд╛рд░ рд░рд╣реЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред

рд╣рдордиреЗ NextJs 9 рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред

рдЙрди 3 рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ NextJs 9 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рдХреЛ Elastic Beanstalk рдкрд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рд░рд╛рдо рдЙрдкрдпреЛрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЕрдВрдд рдореЗрдВ рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдкреЛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рд╕реНрдореГрддрд┐ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рднреА рдореЗрдордиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдмрд┐рд▓реНрдб рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рддреИрдирд╛рддреА рдХрд░рддреЗ рд╕рдордп рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдореЗрдореЛрд░реА рдХреЗ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИред рдХреЗрд╡рд▓ рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рдЪреАрдЬ (рдореЗрд░реЗ рд▓рд┐рдП) рдпрд╣ рдкрдВрдХреНрддрд┐ рд╣реИ:

 readFile [/tmp/b0cc21aa63cece4e/.build-utils/.builder/node_modules/@now/next/dist/index.js:9555]

рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рд▓реЙрдЧ ...


Aug 22 2019 01:26:51:346 | ╬╗  (Lambda)       page was emitted as a lambda (i.e. getInitialProps)
-- | --
Aug 22 2019 01:26:51:346 | тЪб  (Static File)  page was prerendered as static HTML
Aug 22 2019 01:26:51:434 | Done in 146.48s.
Aug 22 2019 01:26:51:444 | preparing lambda files...
Aug 22 2019 01:34:22:983 | <--- Last few GCs --->
Aug 22 2019 01:34:22:983 | [430:0x23f5310]   666594 ms: Mark-sweep 4089.3 (4262.1) -> 4089.3 (4261.1) MB, 3898.4 / 0.0 ms  allocation failure GC in old space requested
Aug 22 2019 01:34:22:983 | [430:0x23f5310]   671097 ms: Mark-sweep 4089.3 (4261.1) -> 4089.3 (4225.6) MB, 4502.8 / 0.0 ms  last resort GC in old space requested
Aug 22 2019 01:34:22:983 | [430:0x23f5310]   674990 ms: Mark-sweep 4089.3 (4225.6) -> 4089.3 (4223.1) MB, 3892.4 / 0.0 ms  last resort GC in old space requested
Aug 22 2019 01:34:22:983 | <--- JS stacktrace --->
Aug 22 2019 01:34:22:983 | ==== JS stack trace =========================================
Aug 22 2019 01:34:22:983 | Security context: 0x70e9f6257c1 <JSObject>
Aug 22 2019 01:34:22:983 | 1: toString [buffer.js:611] [bytecode=0x2833662c6061 offset=31](this=0xce2ca70dbc1 <Uint8Array map = 0x6cc06836709>,encoding=0x2fb750b822d1 <undefined>,start=0x2fb750b822d1 <undefined>,end=0x2fb750b822d1 <undefined>)
Aug 22 2019 01:34:22:983 | 2: arguments adaptor frame: 0->3
Aug 22 2019 01:34:22:983 | 3: readFile [/tmp/b0cc21aa63cece4e/.build-utils/.builder/node_modules/@now/next/dist/index.js:9555] [bytecode=0x1814135ff3e1 offset=53](t...
Aug 22 2019 01:34:22:983 | FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
Aug 22 2019 01:34:22:983 | 1:
Aug 22 2019 01:34:22:984 | node::Abort() [/node8/bin/node]
Aug 22 2019 01:34:22:984 | 2:
Aug 22 2019 01:34:22:986 | 0x11e73ec [/node8/bin/node]
Aug 22 2019 01:34:22:986 | 3:
Aug 22 2019 01:34:22:986 | v8::Utils::ReportOOMFailure(char const*, bool) [/node8/bin/node]
Aug 22 2019 01:34:22:986 | 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/node8/bin/node]
Aug 22 2019 01:34:22:986 | 5: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/node8/bin/node]
Aug 22 2019 01:34:22:986 | 6:
Aug 22 2019 01:34:22:986 | v8::internal::Factory::NewStringFromUtf8(v8::internal::Vector<char const>, v8::internal::PretenureFlag) [/node8/bin/node]
Aug 22 2019 01:34:22:986 | 7:
Aug 22 2019 01:34:22:987 | v8::String::NewFromUtf8(v8::Isolate*, char const*, v8::NewStringType, int) [/node8/bin/node]
Aug 22 2019 01:34:22:987 | 8:
Aug 22 2019 01:34:22:987 | node::StringBytes::Encode(v8::Isolate*, char const*, unsigned long, node::encoding, v8::Local<v8::Value>*) [/node8/bin/node]
Aug 22 2019 01:34:22:987 | 9:
Aug 22 2019 01:34:22:988 | 0x12070d6 [/node8/bin/node]
Aug 22 2019 01:34:22:988 | 10:
Aug 22 2019 01:34:22:988 | v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) [/node8/bin/node]
Aug 22 2019 01:34:22:988 | 11:
Aug 22 2019 01:34:22:989 | 0xb79dac [/node8/bin/node]
Aug 22 2019 01:34:22:989 | 12:
Aug 22 2019 01:34:22:989 | v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) [/node8/bin/node]
Aug 22 2019 01:34:22:989 | 13: 0x47a70c842fd
Aug 22 2019 01:35:32:549 | done

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рд╣реИ:

const loadConfig = require('./loadConfig');

const reNodeModules = /node_modules/;
const reScript = /\.(js|jsx|mjs)$/;
const reImage = /\.(bmp|gif|jpg|jpeg|png|svg)$/;
const reGraphql = /\.graphql?$/;
const reStyle = /\.(css|less|styl|scss|sass|sss)$/;

module.exports = (nextConfig = {}) => {
  return {
    ...nextConfig,
    webpack(config, options) {
      const { webpack, isServer, dev } = options;

      const staticAssetName = dev ? '[path][name].[ext]?[hash:8]' : '[name]-[hash:8].[ext]';
      const publicPath = '/_next/static/';
      const outputPath = `${isServer ? '../' : ''}static/`;

      // eslint-disable-next-line no-param-reassign
      config.resolve = {
        ...config.resolve,
        modules: [...config.resolve.modules, './src'],
      };

      config.module.rules.push(
        {
          test: reImage,
          exclude: reNodeModules,
          oneOf: [
            // Inline lightweight into CSS
            {
              issuer: reStyle,
              oneOf: [
                // Inline lightweight SVGs as UTF-8 encoded DataUrl string
                {
                  test: /\.svg$/,
                  loader: 'svg-url-loader',
                  options: {
                    name: staticAssetName,
                    limit: 4096, // 4kb
                    publicPath,
                    outputPath,
                  },
                },

                // Inline lightweight as Base64 encoded DataUrl string
                {
                  loader: 'url-loader',
                  options: {
                    name: staticAssetName,
                    limit: 4096, // 4kb
                    publicPath,
                    outputPath,
                  },
                },
              ],
            },

            // Or return public URL to image resource
            {
              loader: 'file-loader',
              options: {
                name: staticAssetName,
                publicPath,
                outputPath,
              },
            },
          ],
        }, // Rules for GraphQL
        {
          test: reGraphql,
          exclude: reNodeModules,
          use: [
            {
              loader: 'webpack-graphql-loader',
              options: {
                removeUnusedFragments: true,
                output: 'document',
              },
            },
          ],
        },
        {
          exclude: [reNodeModules, reScript, reImage, reGraphql, /\.json$/, /\.txt$/, /\.md$/],
          loader: 'file-loader',
          options: {
            name: staticAssetName,
            publicPath,
            outputPath,
          },
        },
      );

      const appConfig = loadConfig();
      if (isServer && dev) {
        console.info(appConfig);
      }
      config.plugins.push(
        new webpack.DefinePlugin({
          __DEV__: dev,
          __SERVER__: isServer,
          __BROWSER__: !isServer,
          __CONFIG__: JSON.stringify(appConfig),
        }),
      );

      if (typeof nextConfig.webpack === 'function') {
        return nextConfig.webpack(config, options);
      }

      return config;
    },
  };
};

@timneutkens рдореИрдВ Next.js 9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЙрди рдШрдЯрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдкреВрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдореЗрд░реА рд╢рд╛рдЦрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
https://github.com/stramel/styled-icons/tree/ms/add-material-variants

рдпрд╣рд╛рдБ рдЕрд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рд╣реИ: https://travis-ci.org/jacobwgillespie/styled-icons/builds/582987078

рдЯреНрд░реИрд╡рд┐рд╕ рдХреЗ рдкрд╛рд╕ NODE_OPTIONS=--max-old-space-size=4096 рд╕реЗрдЯ рд╣реИ

@timneutkens рдХреГрдкрдпрд╛ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд░реЗрдкреЛ рд╣реИ?

рдореИрдВ рдЕрдЧрд▓реЗ @ 9.0.2 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХреА рд╕реАрдорд╛рдПрдВ рдорд╛рд░ рджреА рд╣реИрдВред рдЖрдкрдХреЛ NODE_OPTIONS=--max-old-space-size=4096 рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рд╣рдорд╛рд░реА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// next.config.js
module.exports = {
  experimental: { granularChunks: true }
}

рдзрдиреНрдпрд╡рд╛рдж @Timer , рдореИрдВ granularChunks рд╕реБрд╡рд┐рдзрд╛ рдПрдХ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

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

рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдереА рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХрднреА-рдХрднреА, рдЬрдм рдХреЛрдИ рдирдИ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрддреА рдереА, рддреЛ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХреБрдЫ рдореЗрдореЛрд░реА рдЯреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ?

рдпрд╣ рдирдпрд╛ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рдиреЛрдб рдореЗрдореЛрд░реА рдХреИрдк рдорд╛рд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рдХреА рд╕реНрдореГрддрд┐ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдерд╛?

@ рдЯрд┐рдорд░ рдиреЗ granularChunks рдлрд╝реАрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдлрд┐рд░ рднреА рдЙрд╕реА рдореБрджреНрджреЗ рдкрд░ рднрд╛рдЧ рдЧрдпрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ 8192 рд╕реЗрдЯ рдХреЗ рд╕рд╛рдеред

рдЗрд╕рдореЗрдВ рджрд╛рдиреЗрджрд╛рд░ рд╡рд┐рдЦрдВрдбреВ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗрдЯ рд╣реИ https://github.com/stramel/styled-icons/tree/ms/granular-chunks

рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛, https://github.com/stramel/styled-icons/tree/ms/dynamic-import-granular-chunks

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

рдЕрджреНрдпрддрди: рдореИрдВрдиреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ withSourceMaps рдкреНрд▓рдЧ рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛:

"@zeit/next-source-maps": "^0.0.4-canary.1"

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ hidden-source-map рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ NextJS 8 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдзреАрдорд╛ рдХреНрдпреЛрдВ рд╣реИред

рд╣рдордиреЗ v9 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ ... рдореИрдВ рдПрдХ 2015 рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдкрд╣рд▓реЗ рдХрднреА рдирд╣реАрдВ рдкрд┐рдЫрдбрд╝ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХреБрдЫ рдмрд╣реБрдд рднрд╛рд░реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рд░ рдмрд╛рд░ рдореИрдВ рдЕрдкрдирд╛ рдЕрдЧрд▓рд╛ рдРрдк рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЖрдорддреМрд░ рдкрд░ рд╣рд░ 10 рдорд┐рдирдЯ рдореЗрдВ рдРрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЖрдЬ рдкрд╣рд▓рд╛ рджрд┐рди рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдордирд╛рдиреЗ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рджреЗрд╡ рдЪрд╛рд▓ рдореЗрдВ рдХреБрдЫ рдШрдВрдЯреЛрдВ рддрдХ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд╡рд╣реА JavaScript heap out of memory рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдЧрд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЪрд▓рдиреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА рд╣реИред рдпрд╣рд╛рдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдЕрд╡рд╢реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдореИ рднреА рдпрд╣реА рд╕реЛрдЪрддрд╛ рд╣реВрдБред рдореЗрд░реЗ рдПрдХ рд╕рд╣рдпреЛрдЧреА рдХреЗ рдкрд╛рд╕ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдХрдмреБрдХ рд╣реИ рдФрд░ рдЬрдм рд╕реЗ рд╣рдо рдЕрдЧрд▓реЗ 9 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рд╣реБрдП рд╣реИрдВ, рджреЗрд╡ рд╕рд░реНрд╡рд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдХрднреА-рдХрднреА рдЗрд╕рдореЗрдВ 20 рд╕реЗрдХреЗрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЗрд░реЗ 32GB рднреМрддрд┐рдХ рд╕реНрдореГрддрд┐ рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдкрд░ NODE_OPTIONS = 16384 рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВред

рд▓реЙрдЧ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ:

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x335bafb5be3d]
Security context: 0x0fe28be1e6e9 <JSObject>
    1: createPrinter [0xfe25fe2c0b9] [/Users/my-name/my-project/node_modules/typescript/lib/typescript.js:~86713] [pc=0x335bb12e86f3](this=0x0fe280c03329 <Object map = 0xfe2df152cc9>,printerOptions=0x0fe2f39e8ae1 <Object map = 0xfe20ac205a9>,handlers=0x0fe28e1026f1 <undefined>)
    2: arguments adaptor frame: 1->2
    3: reportImplicitAny(aka reportImpli...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x10003d035 node::Abort() [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 2: 0x10003d23f node::OnFatalError(char const*, char const*) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 5: 0x100589845 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 6: 0x1005856ef v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 7: 0x1005838c4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 8: 0x10059015c v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
 9: 0x1005901df v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
10: 0x10055fb24 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
11: 0x1007e7e04 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/opt/nvm/versions/node/v10.16.3/bin/node]
12: 0x335bafb5be3d
13: 0x335bb12e86f3
14: 0x335bafb0a5c3

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

рдПрдХ рдФрд░ рдЧрд╡рд╛рд╣ рдЬреЛрдбрд╝рдирд╛ред
рдореБрдЭреЗ рдиреЗрдХреНрд╕реНрдЯ рд╡рд░реНрдЬрди 4.2.3 рдХреЗ рд╕рд╛рде рдПрдХ рдРрдк рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

  • рдЗрд╕реЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 9.1.3
  • Package.json рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рд╕рдВрдХреБрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛;
  • рдиреЛрдб_рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдкреИрдХреЗрдЬ.рд▓реЛрдХред Json рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛
  • рднрд╛рдЧрд╛ npm рд╕реНрдерд╛рдкрд┐рдд

рдЬрдм рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реЗрд╡рд╛ рдХреА рддреЛ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рд╛:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
рд╡рд┐рдлрд▓рддрд╛ рдЖрдорддреМрд░ рдкрд░ рдРрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рджрд╕ рдорд┐рдирдЯ рд╕реЗ рднреА рдХрдо рд╕рдордп рдХреЗ рднреАрддрд░ рд╣реБрдИ рдФрд░ рдРрдк рдореЗрдВ рдЕрдзрд┐рдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдХреЗ рдЗрд╕реЗ рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ 8.1.0 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рд╣реА рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдзрд┐рдХ рдмрдпрд╛рдирд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди (рдФрд░ рдЗрд╕ рддрд░рд╣ рдкреЗрдЬ-рдмрд┐рд▓реНрдб) рдХреЗ рд╕рд╛рдеред

рд╣рд╛рдБ, рд╣рдо рдпрд╣ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ ...

рдлрд┐рд░ рд╕реЗ рдЦреБрд▓рдиреЗ рдХрд╛ рд╕рдордп рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @timneutkens

рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдкрд░ bootstrap.min.css рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдХрд▓ рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдЕрдЧрд▓реЗ@9.1.3 рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рджреЛрдиреЛрдВ рдЬрдм рдореИрдВ рд╕реАрдзреЗ bootstrap.min.css рдХреЛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдБ / рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ js рдпрд╛ @import рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ css /

рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ cdn рд╕реЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ, рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрдВ

рдЕрдЧрд▓реЗ / рд╕рд┐рд░ рдХреЗ рд╕рд╛рде, рд╕реНрдореГрддрд┐ рд▓рдВрдмреЗ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рд╕рдордп рдореЗрдВ рдХрдИ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рдмрд╛рдж рднреА рдареАрдХ рд▓рдЧрддреА рд╣реИред
<Head>
<meta key="viewport" name="viewport" content="initial-scale=1.0, width=device-width" />
<link key="bootstrapcdn" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" ...  />
...
</Head>

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЕрдЧрд▓реЗ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рдВрд╢реЛрдзрди рдкрд░ рдереАред рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ 8.1.0 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рдпрд╣ рдиреНрдпреВрдирддрдо рдЕрдВрдХ рдорд┐рд▓ рдЧрдпрд╛ред https://github.com/zeit/next-plugins/issues/541ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб (https://github.com/zeit/next-plugins/issues/392#issuecomment-475845330) рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдФрд░ рдЕрднреА рддрдХ рд╕реНрдореГрддрд┐ рдореБрджреНрджрд╛ рдлрд┐рд░ рд╕реЗ

// next.config.js
const withCSS = require('@zeit/next-css');

function HACK_removeMinimizeOptionFromCssLoaders(config) {
  console.warn(
    'HACK: Removing 'minimize' option from 'css-loader' entries in Webpack config',
  );
  config.module.rules.forEach(rule => {
    if (Array.isArray(rule.use)) {
      rule.use.forEach(u => {
        if (u.loader === 'css-loader' && u.options) {
          delete u.options.minimize;
        }
      });
    }
  });
}

module.exports = withCSS({
  webpack(config) {
    HACK_removeMinimizeOptionFromCssLoaders(config);
    return config;
  },
});

рдореИрдВ рдЕрдЧрд▓реЗ 9.1.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ рдЕрдЧрд▓реЗ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ рд╣реЛ?

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

рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рднреА рдХрд╛рдо рдХрд┐рдпрд╛, @lloan рдЯрд┐рдкреНрдкрдгреА рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ /public/manifest.json meta рдЯреИрдЧ рдХреЗ рд░реВрдк рдореЗрдВ <head/> /public/manifest.json рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╣ рд╕рдВрд╕рд╛рдзрди рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рдерд╛ рдФрд░ рдпрд╣ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рдерд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХреЛрдб рдерд╛, рдЬреЛ icon.png рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ

<Head>
  <link rel="icon" href="/static/icon.png" type="image/png" />
</Head>

рдлрд╝реЗрд╡рд┐рдХреЙрди рдХреЗ рдЖрдпрд╛рдд рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЕрдм рдореЗрдореЛрд░реА рд▓реАрдХ рдХреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ

<Head>
  <link rel="icon" href="/icon.png" type="image/png" />
</Head>

рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ https://github.com/zeit/now/issues/3307 рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреБрдЫ static / public рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реБрдИред рдЬреИрд╕рд╛ рдХрд┐ bukinoshita рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕реНрдереИрддрд┐рдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЗрдЦрд╛ред рдореИрдВрдиреЗ public/static/ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ 674 json рдлрд╝рд╛рдЗрд▓реЛрдВ (рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ред рдореБрдЭреЗ рддрдм рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред

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

рдЕрджреНрдпрддрди: рдореИрдВрдиреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ withSourceMaps рдкреНрд▓рдЧ рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛:

"@zeit/next-source-maps": "^0.0.4-canary.1"

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ hidden-source-map рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ NextJS 8 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдзреАрдорд╛ рдХреНрдпреЛрдВ рд╣реИред

"@zeit/next-source-maps": "^0.0.4-canary.1" рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рд▓рдЧреАред рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдпрд╛ рдореБрдЭреЗ рд╕реНрд░реЛрдд рдХреЗ рдирдХреНрд╢реЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рд╣реЛрдЧрд╛?

@ рдлрд╝реЛрдХрд╕ рдореБрдЭреЗ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рдлреА рд╣рдж рддрдХ рдХрдо рд╣реЛ рдЧрдпрд╛

рдпрд╣рд╛рдБ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛрдиреЗ рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреБрдЫ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдФрд░ рдмрд┐рд▓реНрдб рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 2.41 рдПрдордмреА рддрдХ рдмрдврд╝ рдЧрдпрд╛ред рдлрд┐рд░ 2GB RAM рд╡рд╛рд▓рд╛ рдореЗрд░рд╛ CI рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рд▓рдЧрд╛ред рдЬрдм рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рддреЛ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ 100kb рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

Nextjs 9 рд╢реБрд░реВ рд╕реЗ рд╣реА CI рдореЗрдВ рдмрд╣реБрдд рдзреАрдорд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ... рдмрд╕ рд╕рд╛рдорд╛рди, рд╕рд╛рдордЧреНрд░реА рдпреВрдЖрдИ, рдХреБрдЫ рдкреИрдХреЗрдЬ рдпрд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВред рдореЗрд░реЗ рдкрд╛рд╕ CI: рдиреЛрдб / рдПрдХреНрд╕рдкреНрд░реЗрд╕, рдХреБрдЫ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░, php рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╣реИ, рдЗрди рд╕рднреА рдореЗрдВ CI рдореЗрдВ 1GB рдореЗрдореЛрд░реА рд╣реИ рдФрд░ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬ рдмрдирд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рднрд╛рд╡рдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдпрд╣рд╛рдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ред Mac OS / Github рдХреНрд░рд┐рдпрд╛рдПрдБ рдпрд╣рд╛рдВ рдмрддрд╛рдИ рдЧрдИ рдХреЛрдИ рднреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдорджрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЬреБрдбрд╝реА рд╣реБрдИ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрднреА рдЬрд╝реАрдЗрдЯ рдирд╛рдЙ рдореЗрдВ рдмрдирддрд╛ рд╣реИ (рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реИ)ред

рдЕрдЧрд░ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдорджрдж рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдпрд╣рд╛рдБ (MacOS)ред рдореИрдВрдиреЗ рдЬреЛ рдкрд╛рдпрд╛ рд╣реИ рд╡рд╣ рд╣реИ:

  • рдЕрдЧрд▓рд╛ 9.1.5 рдФрд░ 9.1.6 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред 9.1.4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рддреНрд░реБрдЯрд┐ рдХреЛ рдЧрд╛рдпрдм рдХрд░ рджреЗрддрд╛ рд╣реИред
  • рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ _ckeditor_ рдмрд┐рд▓реНрдб рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ 606KB рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рд╣рдЯрд╛ рджреВрдВ рддреЛ рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдпрджрд┐ рдореИрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдЖрдк рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рд╣реИ ...

<--- Last few GCs --->

[83442:0x102804000]   123060 ms: Scavenge 1371.3 (1422.4) -> 1370.7 (1422.9) MB, 8.3 / 0.0 ms  (average mu = 0.120, current mu = 0.058) allocation failure 
[83442:0x102804000]   123066 ms: Scavenge 1371.7 (1422.9) -> 1370.9 (1423.9) MB, 4.1 / 0.0 ms  (average mu = 0.120, current mu = 0.058) allocation failure 
[83442:0x102804000]   123071 ms: Scavenge 1371.7 (1423.9) -> 1371.0 (1424.4) MB, 3.9 / 0.0 ms  (average mu = 0.120, current mu = 0.058) allocation failure 


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x3b944125be3d]
Security context: 0x164494d1e6e9 <JSObject>
    1: SourceMapConsumer_allGeneratedPositionsFor [0x16448b97d331] [/Users/alberto.iglesias/Coding/iteisa/projects/ceoe-gis/node_modules/@babel/core/node_modules/source-map/lib/source-map-consumer.js:~178] [pc=0x3b944240968c](this=0x1644193fb679 <BasicSourceMapConsumer map = 0x16448ea8a239>,aArgs=0x16447d082249 <Object map = 0x16448ea98939>)
    2: /* anonym...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x10003d035 node::Abort() [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 2: 0x10003d23f node::OnFatalError(char const*, char const*) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 5: 0x100589845 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 6: 0x1005856ef v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 7: 0x1005838c4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 8: 0x10059015c v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
 9: 0x1005901df v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
10: 0x10055fb24 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
11: 0x1007e7e04 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/Users/alberto.iglesias/.nvm/versions/node/v10.16.3/bin/node]
12: 0x3b944125be3d 
13: 0x3b944240968c 
Abort trap: 6

SourceMapConsumer_allGeneratedPositionsFor рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд░рд╛рдзреА рд╣реИред рджреЗрд╡ рдореЛрдб рдореЗрдВ рд╕реНрд░реЛрдд рдирдХреНрд╢реЗ рдХреА рдПрдХ рдкреАрдврд╝реА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдУрд╡рд░рдЯрд╛рдЗрдо, рдпрд╣ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

рдореИрдВ рдЕрднреА рднреА рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реВрдВ, рднрд▓реЗ рд╣реА рдореИрдВ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рдкреАрдврд╝реА рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВ

╨б╨╡╤А╨│╨╡╨╣ред

24 рджрд┐рд╕рдВрдмрд░, 2019 рдХреЛ 10:01 GMT рдкрд░, Emanuele рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

SourceMapConsumer_allGeneratedPositions рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд░рд╛рдзреА рд╣реИред рджреЗрд╡ рдореЛрдб рдореЗрдВ рд╕реНрд░реЛрдд рдирдХреНрд╢реЗ рдХреА рдПрдХ рдкреАрдврд╝реА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдУрд╡рд░рдЯрд╛рдЗрдо, рдпреЗ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд▓рдЧрдЗрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ , рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ ред

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

рд╣рдореЗрд╢рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рдпрд╛ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рдЬреИрд╕реЗ рдЗрдореИрдЯреАрдкрд┐рдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╛рддреЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред "рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ" рдХрд╣рдирд╛ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ? рдореЗрд░рд╛ CI / CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди 1GB RAM рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

@timneutkens repro рдЪрд░рдг рдЗрд╕ рдмрдВрдж рдЕрдВрдХ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

https://github.com/zeit/next.js/issues/9442#issuecomment -554839437

@ Vista1nik рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб, рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдкрджрд╛рд╡рдирдд рд╕реНрдерд┐рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдерд╛ред

рд╕рдВрдмрдВрдзрд┐рдд рдЕрдм рдЬрд╛рд░реА:

https://github.com/zeit/now/issues/3307

рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рдХреЛ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рддрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдереА:

рдирд┐рдореНрди рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, рдпрджрд┐ const Icon undefined , рддреЛ рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдЬрд╛рдБрдЪ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдШрдЯрдХ рдорд╛рдиреНрдп рд╣реИред

const iconMapping = {
  "flash-outline": FlashOutline,
};

export const Icon = ({ name }) => {
  const Icon = iconMapping[name];

  return <Icon />;
}

рдЕрдЧрд░ рдореИрдВ рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдЕрдЧрд░ const Icon рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдореЗрдореЛрд░реА рдЗрд╢реНрдпреВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИред

...
  const Icon = iconMapping[name];

  if (!Icon) return null;
  return <Icon />;
}

рдореЗрд░реЗ рд╕рд╛рде рднреА рд╡рд╣реА рд╣реБрдЖ, рддрдм рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рдерд╛, рдЬреЛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдерд╛:

const Button = ({ children }) => {
  // BUG: the button should be lower case (the HTML input)
  //      instead of CamelCase (an undefined component)
  return <Button>{children}</Button>
}

рдХреГрдкрдпрд╛ Next.js рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ рдерд╛ред

@timneutkens , рдореЗрд░реЗ рдкрд╛рд╕ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (9.3.5) рд╣реИред рдореИрдВрдиреЗ рдЖрдЬ рд╕реБрдмрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рдХреБрдЫ рдорд┐рдирдЯ рдмрд╛рдж рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред

next-source-maps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рде рдРрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп CricleCI рдкрд░ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдореБрджреНрджрд╛ рдерд╛

NODE_OPTIONS="--max_old_space_size=4096" рдиреЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдорджрдж рдХреА, рд▓реЗрдХрд┐рди CircleCI рдкрд░ рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрди рд╡рд░реНрдЧ рдмрдврд╝рд╛рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ https://circleci.com/docs/2.0/configuration-reference/#resource_class рд╕реЗ large рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ред

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЖрдЬ рдЕрдЧрд▓реЗ 9.3.6 рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╢реБрд░реВ рд╣реБрдИ:

<--- Last few GCs --->

[66325:0x108008000]    17639 ms: Mark-sweep 1936.2 (2071.4) -> 1923.6 (2073.4) MB, 283.4 / 0.0 ms  (average mu = 0.157, current mu = 0.048) allocation failure scavenge might not succeed
[66325:0x108008000]    17937 ms: Mark-sweep 1938.1 (2073.4) -> 1925.4 (2075.4) MB, 285.8 / 0.0 ms  (average mu = 0.108, current mu = 0.042) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x0fb9ac667d09 <JSObject>
    0: builtin exit frame: stringify(this=0x0fb9ac6598a9 <Object map = 0xfb921b01449>,0x0fb958e804d1 <undefined>,0x0fb958e804d1 <undefined>,0x0fb910180ec1 <Object map = 0xfb9d8491399>,0x0fb9ac6598a9 <Object map = 0xfb921b01449>)

    1: arguments adaptor frame: 1->3
    2: callAsync [0xfb9320a6cf9] [0x0fb958e804d1 <undefined>:~1] [pc=0x1aa09fe84627](this=0x0fb9320a6909 <Hook map = 0xfb9d8495179>...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
...

paths 12280 рдореЗрдВ рд╕реБрдЭрд╛рдП рдЕрдиреБрд╕рд╛рд░ tsconfig.json рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рддрдп рдХрд┐рдпрд╛

рд╢рд╛рдпрдж рдЕрд▓рдЧ рдХрд╛рд░рдг

9.0.5 рд╕реЗ 9.3.6 рддрдХ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣реА рдореБрджреНрджрд╛ рдпрд╣рд╛рдВ рдореМрдЬреВрдж рд╣реИред

Creating an optimized production build ..
<--- Last few GCs --->

[1600:0000020DB9FFEBE0]    26245 ms: Mark-sweep 1958.0 (2080.3) -> 1945.0 (2081.5) MB, 266.4 / 0.0 ms  (average mu = 0.179, current mu = 0.077) allocation failure scavenge might not succeed
[1600:0000020DB9FFEBE0]    26530 ms: Mark-sweep 1959.9 (2082.0) -> 1947.2 (2083.8) MB, 265.9 / 0.0 ms  (average mu = 0.127, current mu = 0.068) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 00007FF77B4D4DDD]
Security context: 0x00e7d00c08d1 <JSObject>
    1: /* anonymous */(aka /* anonymous */) [000002BB3E5CAA29] [C:\Users\...\node_modules\enhanced-resolve\lib\UnsafeCachePlugin.js:~27] [pc=00000147695447FC](this=0x00d9404004b1 <undefined>,0x001a9e083681 <Object map = 000003D51551D3A9>,0x001a9e0838d9 <Object map = 000003D515521AE9>,0x001a9e083979 ...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF77A8D363F napi_wrap+128063
 2: 00007FF77A872836 v8::base::CPU::has_sse+35142
 3: 00007FF77A8734F6 v8::base::CPU::has_sse+38406
 4: 00007FF77B089F4E v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF77B072021 v8::SharedArrayBuffer::Externalize+833
 6: 00007FF77AF3E57C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436
 7: 00007FF77AF497D0 v8::internal::Heap::ProtectUnprotectedMemoryChunks+1312
 8: 00007FF77AF462F4 v8::internal::Heap::PageFlagsAreConsistent+3204
 9: 00007FF77AF3BB13 v8::internal::Heap::CollectGarbage+1283
10: 00007FF77AF3A184 v8::internal::Heap::AddRetainedMap+2452
11: 00007FF77AF5C734 v8::internal::Factory::NewInternalizedStringImpl+132
12: 00007FF77AD9C7FD v8::internal::DescriptorArray::Allocate+4941
13: 00007FF77ADAD0C5 v8::internal::StringTable::LookupString+373
14: 00007FF77AAAF356 v8::internal::Factory::InternalizeName+54
15: 00007FF77ACAB0BE v8::internal::Runtime::GetObjectProperty+9662
16: 00007FF77B4D4DDD v8::internal::SetupIsolateDelegate::SetupHeap+546637
17: 00000147695447FC

рдХреЛрдИ рдЙрдкрд╛рдп?

@szaza рдЖрдк next@canary рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдорд╛рдорд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдореБрджреНрджрд╛ рд╣реИ: https://github.com/zeit/next.js/issues/12280

рдареАрдХ рд╣реИ, node_modules рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрдирд░реА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЕрдм рдПрдХ рдФрд░ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рд╣реИ: Cannot find module 'next-server/dist/server/next-server'. ред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЛ рдкрд░рд┐рдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ?

рдУрд╣, рдореБрдЭреЗ рдорд┐рд▓ рдЧрдпрд╛, рдЗрд╕реЗ import Server from "next/dist/next-server/server/next-server"; рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@szaza рдЖрдкрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЖрдпрд╛рдд рдХреИрд╕реЗ рдХрд┐рдпрд╛? рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп 'next' рдЖрдпрд╛рдд рдХрд░рдирд╛ рдерд╛?

рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдХ рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдПрдХ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдорд┐рдбрд┐рд▓рд╡реЗрдпрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдирдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

import Server from "next-server/dist/server/next-server";
...
export const initPassport = (
    server: Express,
    app: Server,
    authStrategies: string[]
) => {
...
return app.render(req, res, AuthRoutes.LOGIN_PAGE);
...
}

рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 9.0.5 рд╕реЗ 9.3.7-canary.0 рддрдХ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, Server рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдм next-server/dist/... рд╕реЗ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкрде рд╕реЗред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдереА рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред Jsonред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ NextJS 9.2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдореБрджреНрджреЗ рдХреЗ @ zeit / next-css рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдг рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдпрд╛ рд╡реЗ рдХрд┐рд╕реА рддрд░рд╣ NextJS рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рдкреИрдХреЗрдЬ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ -

{
"dependencies": {
    "@zeit/next-css": "^1.0.1",
    "axios": "^0.19.2",
    "body-parser": "^1.19.0",
    "compression": "^1.7.4",
    "cookie-parser": "^1.4.4",
    "cookie-session": "^1.4.0",
    "express": "^4.17.1",
    "helmet": "^3.21.3",
    "json-server": "^0.16.1",
    "morgan": "^1.9.1",
    "next": "^9.2.2",
    "passport": "^0.4.1",
    "passport-local": "^1.0.0",
    "passport-strategy": "^1.0.0",
    "prop-types": "^15.7.2",
    "react": "^16.13.0",
    "react-dom": "^16.13.0",
    "react-mathjax2": "0.0.2",
    "shaka-player": "^2.5.10",
    "styled-components": "^5.0.1"
  },
  "devDependencies": {
    "@babel/cli": "^7.8.4",
    "@babel/core": "^7.9.0",
    "@babel/preset-env": "^7.8.6",
    "@babel/preset-react": "^7.8.3",
    "babel-jest": "^25.1.0",
    "babel-plugin-module-resolver": "^4.0.0",
    "babel-plugin-styled-components": "^1.10.7",
    "enzyme": "^3.11.0",
    "enzyme-adapter-react-16": "^1.15.2",
    "jest": "^25.1.0",
    "react-test-renderer": "^16.13.0"
  }
}

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЗ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА https://github.com/google/schema-dts рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдХрдо рдХрд░ рджрд┐рдпрд╛

рдореИрдВрдиреЗ pages/ рд╕реЗ рд╕рднреА рдкреЗрдЬ рдХреЛ рд╣рдЯрд╛рдХрд░ рдФрд░ рдХреЛрдб рд╣рдЯрд╛рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЬрдм рддрдХ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдлрд┐рд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдХреЛрдб рд╡рд╛рдкрд╕ рдЕрдВрджрд░ рдбрд╛рд▓ рджрд┐рдпрд╛ред

рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдкрд╛рд░ рдЖрддрд╛ рд╣реИ

next-source-maps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рде рдРрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп CricleCI рдкрд░ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдореБрджреНрджрд╛ рдерд╛

NODE_OPTIONS="--max_old_space_size=4096" рдиреЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдорджрдж рдХреА, рд▓реЗрдХрд┐рди CircleCI рдкрд░ рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрди рд╡рд░реНрдЧ рдмрдврд╝рд╛рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ https://circleci.com/docs/2.0/configuration-reference/#resource_class рд╕реЗ large рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ред

рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИ that

рдХрд╛рдлреА рдмрдбрд╝реЗ Next.js рдРрдк (v9.3.6) рдкрд░ рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧ рдРрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк (рджреЗрд╡ рдореЛрдб) рдкрд░ рдвреЗрд░ рдореЗрдореЛрд░реА рдореБрджреНрджреЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓ рд░рд╣реЗ рдереЗ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдиреЛрдб 10, рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ NODE_OPTIONS="--max_old_space_size=4096" рдорджрдж рдХреА рдЧрдИ рдереАред рдиреЛрдб 12 рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕ рдХрдорд┐рдЯ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ (рд▓рд┐рдирдХреНрд╕ рдХреЗрд╡рд▓ afaik)ред

рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рдХреЛ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рддрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдереА:

рдирд┐рдореНрди рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, рдпрджрд┐ const Icon undefined , рддреЛ рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдЬрд╛рдБрдЪ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдШрдЯрдХ рдорд╛рдиреНрдп рд╣реИред

const iconMapping = {
  "flash-outline": FlashOutline,
};

export const Icon = ({ name }) => {
  const Icon = iconMapping[name];

  return <Icon />;
}

рдЕрдЧрд░ рдореИрдВ рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдЕрдЧрд░ const Icon рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдореЗрдореЛрд░реА рдЗрд╢реНрдпреВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИред

...
  const Icon = iconMapping[name];

  if (!Icon) return null;
  return <Icon />;
}

рдЖрдкрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдХрд╛рд░рдг рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ?

рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЗрд╕ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдХрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдФрд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ
рдореБрд╕реАрдмрддред рдЪрд┐рд╣реНрди рдПрдХ рдШрдЯрдХ рд╣реИ рдФрд░ рдЪрд┐рд╣реНрди рдХреЗ рдЕрдВрджрд░ рдореИрдВ рдЪрд┐рд╣реНрди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛
рдЕрдкрдиреЗ рдЖрдкред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рд╡рд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдШрдЯрдХ рдХреЛ рдЕрд▓рдЧ рдХрд░рдХреЗ рдФрд░
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬрдм рддрдХ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдШрдЯрдХ рдЙрддреНрддреЗрдЬрдХ рдерд╛
рдЙрд╕ред

Thu рдкрд░, 21 рдордИ 2020 рдХреЛ 18:20 рдмрдЬреЗ, Vivek_Neel рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рдХреЛ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рддрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреНрдпрд╛ рдерд╛
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрджреНрджрд╛:

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, рдпрджрд┐ рдХреЙрдиреНрд╕реНрдЯреЗрдб рдЖрдЗрдХрди рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ
рдпрджрд┐ рдХреЛрдб рд╡реИрдз рд╣реИ рддреЛ рдХреЛрдб рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдЬрд╛рдБрдЪ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред

const рдЖрдЗрдХрди рдореИрдкрд┐рдВрдЧ = {
"рдлреНрд▓реИрд╢-рдЖрдЙрдЯрд▓рд╛рдЗрди": рдлреНрд▓реИрд╢рдСрдЯрд▓рд╛рдЗрди,
};
рдирд┐рд░реНрдпрд╛рдд const рдЪрд┐рд╣реНрди = ({рдирд╛рдо}) => {
const рдЪрд┐рд╣реНрди = iconMapping [рдирд╛рдо];

рд╡рд╛рдкрд╕реА ;
}

рдпрджрд┐ рдореИрдВ рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдпрджрд┐ рдХреЙрдиреНрд╕реНрдЯ рдЖрдЗрдХреЙрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЖрдЙрдЯ рдСрдл рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ
рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛ред

...
const рдЪрд┐рд╣реНрди = iconMapping [рдирд╛рдо];

рдЕрдЧрд░ (рдЖрдЗрдХрди) рд╡рд╛рдкрд╕реА рд╢реВрдиреНрдп рд╣реИ;
рд╡рд╛рдкрд╕реА ;
}

рдЖрдкрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ
рдореБрджреНрджрд╛?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/zeit/next.js/issues/7929#issuecomment-6321818103/ рдпрд╛
рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд
https://github.com/notifications/unsubscribe-auth/ABA2CL7ZJQY5YPYJVCJMCODRSVIE7ANCNFSM4ICM4RAA
ред

>

рдореЗрд░реЗ рдлреЛрди рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛

рдЬрд╣рд╛рдБ рддрдХ рдореИрдВрдиреЗ рд╕рдордЭрд╛, Next.js (v9.0.0 рдХреЗ рдмрд╛рдж рд╕реЗ) рдмрдбрд╝реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдореЗрдореЛрд░реА рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдЬрдм рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рднрд╛рдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рддреЛ рд╣рдорд╛рд░реА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рд▓рд┐рдорд┐рдЯ рдХреЛ рд╣рд┐рдЯ рдХрд░рддреА рд╣реИред

рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдХреЗ рджреМрд░рд╛рди, рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдореЗрдВ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдКрдкрд░ рдЙрдбрд╝ рдЬрд╛рддреА рд╣реИ рдФрд░ рдореЗрдореЛрд░реА рд╣реАрдк рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

рдХреНрдпрд╛ рдХреЛрд░ рдЯреАрдо рдХрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВ рдФрд░ рдореЗрд░реА рдЯреАрдо, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд▓реИрдкрдЯреЙрдк рдХреЗ рд╕рд╛рде, рдХрднреА-рдХрднреА рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд▓рдЧрднрдЧ 1 рд╡рд░реНрд╖ рдкреБрд░рд╛рдиреА рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдХреЗрд╡рд▓ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рджреЛ рдЙрдк-рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ рдХрд┐ рдПрдХ рджрд┐рди рд╣рдо рд╕реАрдЖрдИ рдкрд░ рднреА рдЖрд╡реЗрджрди рдирд╣реАрдВ рдмрдирд╛ рдкрд╛рдПрдВрдЧреЗ (рдФрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП VMs)ред

рдореБрдЭреЗ рдпрд╣рд╛рдБ рдкрд░ рдмреБрд░реЗ рдЖрджрдореА рд╣реЛрдиреЗ рдХрд╛ рдмрд╣реБрдд рдЕрдлрд╝рд╕реЛрд╕ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдорджрдж рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣рд╛ рд╣реВрдБред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╣рдордиреЗ Next.js 9.3.3 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ

рдХреНрдпрд╛ рдХреЛрд░ рдЯреАрдо рдХрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдПрдХ рдкреВрд░реНрдг рдкреНрд░рдЬрдирди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдпрд╛ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдХрдИ рдмрд╛рд░ рдкреВрдЫрд╛ рд╣реИред рд╣рдо рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╡рд┐рд╢реЗрд╖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреБрдЫ рднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдордиреЗ 9.4 btw рдореЗрдВ sourcemap рдкреАрдврд╝реА рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

FWIW рдХреЗ рдорд╛рдорд▓реЗ рдЬреИрд╕реЗ https://github.com/zeit/next.js/issues/7929#issuecomment -618297553 рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдП рдЧрдП рдЕрдирдВрдд рд▓реВрдк рд╣реИрдВ рдФрд░ рд╣рдо рдЗрдирдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рд░рд┐рдПрдХреНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВ) )ред

рдЬрд╣рд╛рдБ рддрдХ рдореИрдВрдиреЗ рд╕рдордЭрд╛, Next.js (v9.0.0 рдХреЗ рдмрд╛рдж рд╕реЗ) рдмрдбрд╝реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдореЗрдореЛрд░реА рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдЬрдм рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рднрд╛рдЧ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рддреЛ рд╣рдорд╛рд░реА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рд▓рд┐рдорд┐рдЯ рдХреЛ рд╣рд┐рдЯ рдХрд░рддреА рд╣реИред

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

рд╣рдо Next.js рдкрд░ рд▓рд╛рдЦреЛрдВ рдЕрдиреБрд░реЛрдз рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ 300+ рдкреГрд╖реНрда рд╣реЛрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреА рдЯреАрдореЛрдВ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рдХреЛрдИ рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡реЗ рдЕрдкрдиреЗ рдкреВрд░реЗ рджрд┐рди рдореЗрдВ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

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

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

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

рдЬрдм рд╕реЗ рдЗрд╕реЗ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛

рдореИрдВ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдмрдВрдж рд╣реИред

рд╣рдордиреЗ 9.4 btw рдореЗрдВ sourcemap рдкреАрдврд╝реА рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдСрдкреНрдЯ-рдЗрди / рдСрдкреНрдЯ-рдЖрдЙрдЯ рд╣реИ? рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдирдХреНрд╢реЗ рдХреА рдкреАрдврд╝реА рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ (рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдЬрдм рдореИрдВрдиреЗ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ (рддреЛ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ) рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред

рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╡реИрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдВред рд░реЗрдкреЛ рдХреЛ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдЕрдм рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЯреНрд░рд╛рдЗрдПрдЬрд┐рдВрдЧ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

тЦ▓  styled-icons (master) тЬЧ yarn build:ci
yarn run v1.22.4
$ lerna run build
lerna notice cli v3.21.0
lerna info Executing command in 25 packages: "yarn run build"
lerna info run Ran npm script 'build' in '@styled-icons/styled-icon' in 6.6s:
$ tsc --project tsconfig.esm.json && mv dist/index.js dist/index.esm.js && tsc --project tsconfig.json
lerna ERR! yarn run build exited 1 in '@styled-icons/boxicons-logos'
lerna ERR! yarn run build stdout:
$ build-pack
Reading icon packs...
Error reading icons from pack
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

lerna ERR! yarn run build stderr:
error Command failed with exit code 1.

lerna ERR! yarn run build exited 1 in '@styled-icons/boxicons-logos'
lerna WARN complete Waiting for 4 child processes to exit. CTRL-C to exit immediately.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

рдкреНрд░рдЬрдирди рдХреЛ рдЕрдВрдЬрд╛рдо рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╣рд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдкреВрдЫрд╛ рдЬреЛ рдпрд╣рд╛рдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рдЬрдирди рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрди рдореБрджреНрджреЛрдВ рдХреЗ 100% рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛рдлреА рдХрдо рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдСрдкреНрдЯ-рдЗрди / рдСрдкреНрдЯ-рдЖрдЙрдЯ рд╣реИ? рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдирдХреНрд╢реЗ рдХреА рдкреАрдврд╝реА рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ (рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдЬрдм рдореИрдВрдиреЗ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ (рддреЛ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ) рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред

Sourcemaps рд╣рдореЗрд╢рд╛ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ eval рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рд╣реИред

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

рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рдЖрддреА рд░рд╣реАрдВ рдФрд░ рдореИрдВ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдорд╛рдВрдЧрддрд╛ рд░рд╣рд╛: https://github.com/zeit/next.js/issues/7929#issuecomment -568760542

рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдХреЗрд╡рд▓ 2 рд░рд┐рдкреНрд░реЛрдбрдХреНрд╢рди рджрд┐рдП рдЧрдП рд╣реИрдВред рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ Next.js ( now dev рдореЗрдореЛрд░реА рдЦрдкрдд) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд / рдирд┐рд░реНрдорд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдореИрдВ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдмрдВрдж рд╣реИред

рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ @vercel.com рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рд╣рдо рдПрдХ рдПрдирдбреАрдП рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрднрд╡рддрдГ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░рд╛рдорд░реНрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╕рдм рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдорджрдж рдФрд░ рдЖрдк рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡реЗрджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХреА рд╕реАрдорд╛рдПрдВ рдорд╛рд░ рджреА рд╣реИрдВред рдЖрдкрдХреЛ NODE_OPTIONS=--max-old-space-size=4096 рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рд╣рдорд╛рд░реА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// next.config.js
module.exports = {
  experimental: { granularChunks: true }
}

рдЗрд╕рд╕реЗ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ, FYI рдХрд░реЗрдВред

рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдореБрджреНрджрд╛ рдЗрдирдмрд┐рд▓реНрдЯ рдЕрдЧрд▓реЗ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ?
рдпрд╛рдиреА: Next start NODE_ENV=production node server.js" рдмрдЬрд╛рдп?

рдмрд┐рд▓реНрдб рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред "рдиреЛрдб server.js" рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЗрд░реЗ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдкрд░ рдпрд╣ рдореЗрдореЛрд░реА рддрдм рддрдХ рдмрдирд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рд╡рд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рди рд╣реЛ рдЬрд╛рдП рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдП, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдХреИрд╢реНрдб рдорд╛рд░реНрдЧреЛрдВ рдФрд░ рд╕рд╛рдорд╛рди рдХреЛ рдЦреЛ рджреЗрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рдмрд╛рдж рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рд╕рдм SSR рд╣реЛ рд░рд╣рд╛ рд╣реИред

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
0|profiles |  1: 0xa093f0 node::Abort() [node /home/projects/profiles/server.js]
0|profiles |  2: 0xa097fc node::OnFatalError(char const*, char const*) [node /home/projects/profiles/server.js]
0|profiles |  3: 0xb842ae v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node /home/projects/profiles/server.js]
0|profiles |  4: 0xb84629 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node /home/projects/profiles/server.js]
0|profiles |  5: 0xd30fe5  [node /home/projects/profiles/server.js]
0|profiles |  6: 0xd31676 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [node /home/projects/profiles/server.js]
0|profiles |  7: 0xd3def5 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node /home/projects/profiles/server.js]
0|profiles |  8: 0xd3eda5 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node /home/projects/profiles/server.js]
0|profiles |  9: 0xd4185c v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node /home/projects/profiles/server.js]
0|profiles | 10: 0xd0830b v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node /home/projects/profiles/server.js]
0|profiles | 11: 0x1049f4e v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node /home/projects/profiles/server.js]
0|profiles | 12: 0x13cf019  [node /home/projects/profiles/server.js]

рдпрд╣ рдореЗрд░рд╛ рдкреИрдХреЗрдЬ рд╣реИ

{
  "name": "profiles",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "node server.js",
    "build": "yarn relay && next build",
    "start": "NODE_ENV=production node server.js",
    "relay": "relay-compiler --src ./ --exclude '**/.next/**' '**/node_modules/**' '**/test/**'  '**/__generated__/**' --exclude '**/schema/**' --schema ./var/schema.graphql --artifactDirectory __generated__",
    "relay-get-schema-stage": "graphql get-schema --project sourcr --endpoint stage && yarn run relay",
    "relay-get-schema-prod": "graphql get-schema --project sourcr --endpoint prod && yarn run relay",
    "relay-get-schema-dev": "graphql get-schema --project sourcr --endpoint dev && yarn run relay",
    "pm2": "pm2"
  },
  "dependencies": {
    "@babel/plugin-proposal-class-properties": "^7.10.4",
    "@babel/plugin-proposal-decorators": "^7.10.5",
    "@babel/plugin-proposal-export-default-from": "^7.10.4",
    "@babel/plugin-proposal-optional-chaining": "^7.11.0",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-transform-runtime": "^7.11.0",
    "@fortawesome/fontawesome": "^1.1.8",
    "@fortawesome/fontawesome-free-regular": "^5.0.13",
    "@fortawesome/fontawesome-free-solid": "^5.0.13",
    "@fortawesome/react-fontawesome": "^0.1.11",
    "@sentry/browser": "^5.21.0",
    "@svgr/webpack": "^5.4.0",
    "babel-loader": "^8.1.0",
    "babel-plugin-styled-components": "^1.11.1",
    "babel-plugin-transform-export-extensions": "^6.22.0",
    "bootstrap": "^4.5.2",
    "classnames": "^2.2.6",
    "file-loader": "^6.0.0",
    "formsy-react": "^1.1.5",
    "graphql": "^15.3.0",
    "jwt-decode": "^2.2.0",
    "mobx": "^5.15.5",
    "moment": "^2.28.0",
    "next": "9.5.1",
    "path": "^0.12.7",
    "pm2": "^4.5.0",
    "query-string": "^6.13.1",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-helmet": "^6.1.0",
    "react-player": "^2.6.0",
    "react-relay": "^10.0.1",
    "react-relay-network-modern": "^4.7.4",
    "react-relay-network-modern-ssr": "^1.4.0",
    "react-toastify": "^6.0.8",
    "relay-compiler": "^10.0.1",
    "relay-devtools": "^1.4.0",
    "relay-devtools-core": "^0.0.8",
    "relay-runtime": "^10.0.1",
    "sass": "^1.26.10",
    "sass-resources-loader": "^2.0.3",
    "siema": "^1.5.1",
    "transform-class-properties": "^0.1.0"
  },
  "devDependencies": {
    "babel-plugin-relay": "^10.0.1"
  }
}

рдЬреЛ рдХреЛрдИ рднрдЧреЛрдбрд╝рд╛ next build рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ .babelrc рдпрд╛ babel.config.js рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП .babelrc Next.js рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ next build рд╕рд╣рдордд рдирд╣реАрдВ рд╣реИред рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореБрджреНрджрд╛ рдХреЗрд╡рд▓ рдбреЙрдХрд░ рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдкрдиреА рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдмрджрд▓рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛

FROM node:12
WORKDIR /app
COPY package.json package-lock.json /app/
ENV NODE_ENV production
RUN npm install
COPY . /app
RUN npm run build
RUN npm run next-build
EXPOSE 8081
CMD ["npm", "start"]

рдЗрд╕рдХреЗ рд▓рд┐рдП

FROM node:12
WORKDIR /app
COPY package.json package-lock.json /app/
ENV NODE_ENV production
RUN npm install
COPY . /app
RUN npm run build
# Let Next.js use its own Babel config
RUN rm .babelrc
RUN npm run next-build
EXPOSE 8081
CMD ["npm", "start"]

GitLab CI рдореЗрдВ рд╕рд╛рдЭрд╛ рдзрд╛рд╡рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдзрд╛рд╡рдХ SIGABRT рд╕рд╛рде рдЖрдкрдХреА рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░ рджреЗрдВрдЧреЗ рдФрд░ рдмрджрд▓реЗ рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рдореВрд╣ рдзрд╛рд╡рдХ рдкрд░ рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА next-transpile-modules рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди resolveSymlinks -рд╕реЗрдЯрд┐рдВрдЧ (v4.1.0 рдХреЗ рдмрд╛рдж рд╕реЗ) рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдерд╛:

// next.config.js
const withTM = require("next-transpile-modules")([
    "somepackage"
], {
    resolveSymlinks: true
})
module.exports = {
    ...withTM()
}

рдореБрдЭреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрдм somepackage "рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛" (500kb рд╕реЗ 700kb рддрдХ), рдЕрдм рдЕрдЪрд╛рдирдХ, рдореЗрд░реА рдореЗрдореЛрд░реА рдХреЗ рд╕рднреА (8 рдЬреАрдмреА рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рднреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ) рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ ред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреБрдЫ рд╕рд┐рдореНрд▓рд┐рдВрдХ-рдХрд╛рд░рдг рд▓реВрдк рд╣реИрдВ рдЬреЛ рдореЗрдореЛрд░реА рдХреЛ рддреЗрдЬреА рд╕реЗ рдлреВрд▓рд╛ рд╣реБрдЖ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред

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

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

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

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

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

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

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