рдиреЗрдХреНрд╕реНрдЯ 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
рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ, рддреЛ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЛрдбрд╝реЗрдВред
рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВред
рдкреНрд░рдЬрдирди рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
рд╣рд╛рдБ рдореБрдЭреЗ рдкрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ sourcemaps рдХреА рдкреАрдврд╝реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдореЗрдореЛрд░реА рдвреЗрд░ рд╣реЛ рд░рд╣рд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдФрд░ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореВрд▓ рд╕рд░рдгреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдорд┐рд▓рд╛ред
рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
FYI рдХрд░реЗрдВ рдпрд╣ рдЕрдм рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЬреЛрдбрд╝реА:
NODE_OPTIONS="--max_old_space_size=4096"
рдпрд╣ 28 рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ 30 рдорд╛рд░реНрдЧ рджреЗрддрд╛ рд╣реВрдВ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 31 рдорд╛рд░реНрдЧ рд╣реИрдВ) рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА 3GB рддрдХ рдореЗрдореЛрд░реА (рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ) рддрдХ рдЬрд╛рддреА рд╣реИред рдореИрдВ рдПрдХ рдФрд╕рдд рд▓реИрдкрдЯреЙрдк рдкрд░ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ 8GB рдореЗрдореЛрд░реА рд╣реИ, рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред
рдпрджрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдБ рдирд┐рд░реНрдорд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЗ рдЖрдБрдХрдбрд╝реЗ рд╣реИрдВ:
рдЬрдм рдпрд╣ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ (рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп) рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣рдо рдХрднреА рднреА рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдкреВрд░реНрдг рдкреНрд░рдЬрдирди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред
рд╣рдордиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдиреЗрдХреНрд╕реНрдЯ 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 рдХреЗ рд╕рд╛рде рдПрдХ рдРрдк рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
рдЬрдм рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реЗрд╡рд╛ рдХреА рддреЛ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рд╛:
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)ред рдореИрдВрдиреЗ рдЬреЛ рдкрд╛рдпрд╛ рд╣реИ рд╡рд╣ рд╣реИ:
рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдпрджрд┐ рдореИрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдЖрдк рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рд╣реИ ...
<--- 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 рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб, рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдкрджрд╛рд╡рдирдд рд╕реНрдерд┐рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдерд╛ред
рд╕рдВрдмрдВрдзрд┐рдд рдЕрдм рдЬрд╛рд░реА:
рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рдХреЛ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рддрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдереА:
рдирд┐рдореНрди рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, рдпрджрд┐ 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 рдЬреАрдмреА рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рднреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ) рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ ред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреБрдЫ рд╕рд┐рдореНрд▓рд┐рдВрдХ-рдХрд╛рд░рдг рд▓реВрдк рд╣реИрдВ рдЬреЛ рдореЗрдореЛрд░реА рдХреЛ рддреЗрдЬреА рд╕реЗ рдлреВрд▓рд╛ рд╣реБрдЖ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@timneutkens рдХреГрдкрдпрд╛ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд░реЗрдкреЛ рд╣реИ?