Next.js: 8.0.0 - '์ ์ ˆํ•œ ๋กœ๋”๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...' ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋Š” ๋™์  ๊ฐ€์ ธ์˜ค๊ธฐ

์— ๋งŒ๋“  2019๋…„ 02์›” 11์ผ  ยท  58์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vercel/next.js

๋ฒ„๊ทธ ์‹ ๊ณ 

๋ฐฉ๊ธˆ 8.0.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ์ •๋ง ๊ธฐ์ฉ๋‹ˆ๋‹ค! ๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„๊ทธ ์„ค๋ช…

๋”ฐ๋ผ์„œ dev ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋‹ค์Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

You may need an appropriate loader to handle this file type.
| 
| 
> import('./noop');
| var _window = window,
|     assetPrefix = _window.__NEXT_DATA__.assetPrefix;

webpack 4.29.0 ์—์„œ ์˜ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค( ์—ฌ๊ธฐ ์ฐธ์กฐ ).

acorn": "^6.0.5 ๋ฅผ ์ข…์†์„ฑ์œผ๋กœ ์„ ์–ธํ•œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋งˆ์Šคํ„ฐ ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๊ฒƒ์€ ์•„๋‹๊นŒ?

p0 upstream

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ž, ์—ฌ๊ธฐ ์šฐ์Šน ์ฝค๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(100% ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ).
๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” ์ด๋ฏธ ๋‹ค์Œ v7์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. npm install next@latest -> ๋‹ค์Œ v8.0.1์„ ์„ค์น˜ํ•˜์ง€๋งŒ ๋„ํ† ๋ฆฌ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  2. npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  3. npm install acorn
  4. npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  5. npm install next@latest -> ๊ฒฝ๊ณ  ์—†์Œ
  6. npm run dev ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!!! ๐ŸŽ‰

๊ฒฐ๋ก 
์—ด์‡ ๋Š” ๋‹ค์Œ ์ „์— ๋„ํ† ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

๋ชจ๋“  58 ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ๋‹ค. ๊ฐœ๋ฐœ ๋ชจ๋“œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. npm์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋„ํ† ๋ฆฌ ํŒจํ‚ค์ง€๋„ ์„ค์น˜ํ•ด ๋ณด์•˜์ง€๋งŒ ์†Œ์šฉ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
@timneutkens

๊ทผ๋ณธ ์›์ธ์ด ๊ฐ™์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ ธ์˜ค๊ธฐ์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

/Users/andrewingram/Repositories/tego/website-next/node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js:1
(function (exports, require, module, __filename, __dirname) { import _Symbol$iterator from "../../core-js/symbol/iterator";
                                                                      ^^^^^^^^^^^^^^^^

SyntaxError: Unexpected identifier

[email protected] ์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค.

@AndrewIngram ๋ณต์ œํ’ˆ ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. webpack์ด ์•„๋‹Œ @babel/runtime๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ์˜ค๋ฅ˜์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. acorn ๋ฅผ ์„ค์น˜ํ•ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ €๋Š” ์ต์Šคํ”„๋ ˆ์Šค ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ts-node ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์€ @babel/core๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-        "@babel/core": "^7.1.0",
+        "@babel/core": "7.2.2",

์–ด๋–ค ์ด์œ ๋กœ ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ์ง์ ‘ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ ๋ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. @babel/core ๋Š” "7.2.2" ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์œ„ํ•ด ์Šค๋ ˆ๋“œ๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ๋•์…˜( next build ํฌํ•จ)์ด ์ œ๋Œ€๋กœ ๋นŒ๋“œ๋˜๊ณ  ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ ๋ชจ๋“œ์—์„œ ์‹คํ–‰ํ•˜๋ฉด OP์™€ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ Next.js๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค(ํ˜„์žฌ Express์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ).
  • @babel/core๋ฅผ 7.2.2๋กœ ์—…๋ฐ์ดํŠธํ•ด๋„ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์Šค๋ ˆ๋“œ์— ๋งํฌ๋œ ๋ฌธ์ œ์— ๋”ฐ๋ผ [email protected] ๋ฐ @babel/[email protected] ๋ฅผ devDependancies๋กœ ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(์ง์ ‘ ์˜์กดํ•˜์ง€ ์•Š๋Š” ๋„ํ† ๋ฆฌ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๋„ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.)

webpack ๋ฐ @babel/core ์—…๋ฐ์ดํŠธ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด package-lock.json ๋ฐ node_modules ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/jescalan/nextjs-test/tree/je.canary

์ •์  ๋นŒ๋“œ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋Š” ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ ๋ชจ๋“œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. babel๋„ webpack๋„ ์ข…์†์„ฑ์œผ๋กœ ์„ค์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

package-lock.json ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์žฌ์ƒ์„ฑํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ถ„๊ธฐ์˜ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์€ package-lock.json ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. -- ์ด๊ฒƒ์ด ์›์ธ์„ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค!

node_modules ๋ฐ package-lock.json ๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

node_modules ๋ฐ package-lock.json ๋ฅผ ์‚ญ์ œํ•ด๋„ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์ง€๋งŒ @iaincollins ๊ฐ€ ์ œ์•ˆํ•œ ๋Œ€๋กœ [email protected] ๋ฅผ ๊ฐœ๋ฐœ์ž ์ข…์†์„ฑ์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ์ด ํŒจํ‚ค์ง€ ์™ธ๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋‚ฎ์€ ๋ฒ„์ „์˜ ๋…ธ๋“œ(v9.11[๋™๋ฃŒ ์ž‘์—… ๋ฒ„์ „]๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  [email protected]๋ฅผ ์„ค์น˜ํ•˜๊ณ  node_modules ๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทผ๋ณธ ์›์ธ์ด ๊ฐ™์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ ธ์˜ค๊ธฐ์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

/Users/andrewingram/Repositories/tego/website-next/node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js:1
(function (exports, require, module, __filename, __dirname) { import _Symbol$iterator from "../../core-js/symbol/iterator";
                                                                      ^^^^^^^^^^^^^^^^

SyntaxError: Unexpected identifier

[email protected] ์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค.

๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์—์„œ @AndrewIngram ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํ”„๋กœ๋•์…˜์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ ๋ชจ๋“œ์˜ [email protected] ์—๋งŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค๋‹ค. node_modules ๋ฐ package-lock.json ๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด _did_ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์žฌ์„ค์น˜ํ•˜๊ธฐ ์ „์— ๋””๋ ‰ํ† ๋ฆฌ์™€ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

TypeScript ํŒŒ์ผ์—์„œ ๋™์ผํ•œ ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค.

error  in ./stores/index.ts

Module parse failed: Export 'IStore' is not defined (77:9)
You may need an appropriate loader to handle this file type.
|   return Store;
| };
> export { IStore, IStoreSnapshotIn, IStoreSnapshotOut };

 @ ./pages/_app.tsx 16:0-37 38:24-32 83:18-26

@icflorescu ๋ช…ํ™•ํ•œ ์žฌ์ƒ์‚ฐ ์—†์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋” ์กฐ์‚ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋‚˜๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค ๐Ÿ™

@icflorescu ์ด ๋ฌธ์ œ์™€ ๋™์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ ๋ฌธ์ œ(๋ณต์ œ ํฌํ•จ)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ ๐Ÿ™

@timneutkens ์ง€๋‚œ ๋ฐค์— ๋‚ด ๋ฌธ์ œ๊ฐ€ #6273์— ์˜ํ•ด ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋งˆ์นจ๋‚ด ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น ์Šค๋ ˆ๋“œ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด next/babel ์‚ฌ์ „ ์„ค์ •์„ ['next/babel', { 'transform-runtime': { useESModules: false } }] ๋กœ ์ˆ˜์ •ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

ํŽธ์ง‘: ๋ฐฉ๊ธˆ ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. #6273์˜ ํ† ๋ก ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ œ ๊ฒฝ์šฐ์—๋Š” node_modules ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ๋‹ค์‹œ ์„ค์น˜ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์˜ ๋‚ด๋ถ€ ์ข…์†์„ฑ ๋ฐ ๋‚จ์€ ๋ชจ๋“ˆ๊ณผ ๊ด€๋ จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(๋™์  ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Spectrum https://spectrum.chat/users/matthew-rapati?thread=c677c233-8b02-447f-aff0-97b3399a493f์— ๋Œ€ํ•ด ์ผ์Šต๋‹ˆ๋‹ค).

node_modules, package-lock.json์„ ์ œ๊ฑฐํ•˜๊ณ  npm ์บ์‹œ๋ฅผ ์ง€์šฐ๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ๋ฌธ์ œ์˜ ์ž‘์€ ์žฌํ˜„์„ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

acorn ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์นด๋‚˜๋ฆฌ์•„์— ๋ณ‘ํ•ฉ๋˜์—ˆ์ง€๋งŒ ์•„์ง ๋งˆ์Šคํ„ฐ์—๋Š” ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. https://github.com/zeit/next.js/pull/6137

Next.js์— ๋„ํ† ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ผํ•˜๋Š” ๊ณณ์—์„œ ์ด๊ฒƒ์€ ๋‹ค์Œ 8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค.

Yarn์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•ด.

์ž, ์—ฌ๊ธฐ ์šฐ์Šน ์ฝค๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(100% ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ).
๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” ์ด๋ฏธ ๋‹ค์Œ v7์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. npm install next@latest -> ๋‹ค์Œ v8.0.1์„ ์„ค์น˜ํ•˜์ง€๋งŒ ๋„ํ† ๋ฆฌ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  2. npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  3. npm install acorn
  4. npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  5. npm install next@latest -> ๊ฒฝ๊ณ  ์—†์Œ
  6. npm run dev ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!!! ๐ŸŽ‰

๊ฒฐ๋ก 
์—ด์‡ ๋Š” ๋‹ค์Œ ์ „์— ๋„ํ† ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

์ผ์ข…์˜ ์˜์กด์„ฑ ํ•ด๊ฒฐ์ด์—ˆ์„๊นŒ? ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ @vasco3 .

์ด๊ฒƒ์€ v8.0.0-canary.11 ์™€ v8.0.0-canary.12 https://github.com/zeit/next.js/compare/v8.0.0-canary.11...v8.0.0-canary ์‚ฌ์ด์—์„œ ์ง์ ‘ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@iaincollins ๊ฐ€ ์ œ์•ˆํ•œ ๋Œ€๋กœ [email protected] ๋ฐ @babel/[email protected] ๋ฅผ devDependencies๋กœ ์„ค์น˜ํ•˜๋ฉด ์ด ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ 8.0.2์™€ ํ•จ๊ป˜ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋„ํ† ๋ฆฌ๋Š” package.json์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

ํ™•์ธ๋จ: 8.0.3์ด ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•จ

@vasco3 ์˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ์‹œ๋„ํ•˜๊ณ  ๋‹ค์Œ AFTER ๋„ํ† ๋ฆฌ๋ฅผ ์„ค์น˜ํ•  ๋•Œ๊นŒ์ง€ dev ์‹คํ–‰ ๋ฌธ์ œ๋Š” ๋‹ค์Œ 8.0.3์—์„œ ๊ณ„์† ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•œ...

Acorn ์—†์ด 8.0.3์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

NPM์ด ๋‹ค์Œ์— ์ž˜๋ชป ์บ์‹ฑํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด node_modules ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  package-lock npm i $๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ NPM CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์— ์ œ๊ฑฐํ•˜๋ฉด ์บ์‹œ์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ œ๊ฑฐ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ Acorn ์—†์ด ๋‹ค์‹œ ์„ค์น˜ํ•œ ํ›„์—๋Š” ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

@Soundvessel ๊ณผ ๋™์ผ

$ next@8 acorn ์„ค์น˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

npm ci
npm i -S acorn<strong i="10">@latest</strong>
npm i -S next<strong i="11">@latest</strong>

@Magellol npm ci ์ดํ›„์— ๊ฐœ๋ฐœ ๋ชจ๋“œ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ๋‚ด ๋‘ ๋ฒˆ์งธ ๊ฒŒ์‹œ๋ฌผ์„ ๋ณด๋ฉด node_modules ์™ธ๋ถ€์˜ ์บ์‹œ๋œ ๋ฒ„์ „์ด ๋ฌธ์ œ์˜ ์›์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— npm ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์— ์ œ๋Œ€๋กœ ์ œ๊ฑฐํ•œ ํ›„ 8.0.3 _without_ acorn์œผ๋กœ ๊ฐœ๋ฐœ ๋ชจ๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. npm ci ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋ฉด ๊ฐœ๋ณ„ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜/์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Soundvessel ๋„ํ† ๋ฆฌ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹ค๋ฅธ ๋‹จ๊ณ„์—์„œ npm ci ์™€ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ฝค๋ณด๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/zeit/next.js/issues/6240#issuecomment -466549203 ๋งŒ์ด ๋‚ด๊ฐ€ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ yarn ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด acorn ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ํ•„์š” ์—†์ด ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.

@vasco3 ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”. :+1:

๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ Acorn์ด ํ•„์š”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. node_modules ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋Œ€์‹  ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ Next๋ฅผ ์ œ๊ฑฐํ•ด ๋ณด์‹ญ์‹œ์˜ค.

npm uninstall --save next
npm install --save next<strong i="7">@latest</strong>

๋‹ค์Œ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜๋ฉด node_modules ์™ธ๋ถ€์˜ NPM ์บ์‹œ์—์„œ ๋ฌธ์ œ์˜ ์›์ธ์ด ์ œ๊ฑฐ๋œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Node ๋ฐ NPM์„ ๋ฏธ๋ฆฌ ์—…๋ฐ์ดํŠธํ–ˆ์ง€๋งŒ ์ œ๋Œ€๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•  ๋•Œ๊นŒ์ง€ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

npm ์บ์‹œ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜๋Š” ๋Œ€์‹  .next ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•ด ๋ณด์‹ญ์‹œ์˜ค.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  • bundleAnalyzer๊ฐ€ ๋™์  ๊ฐ€์ ธ์˜ค๊ธฐ์—์„œ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    ๊ณ ์ • ํ›„,
  • ์„œ๋ฒ„ ๋ฒˆ๋“ค ํŒŒ์ผ์ด .next/ ์— ๋‚จ์•„ ์žˆ์–ด import('./noop'); ์žฌ์„ค์น˜์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์˜ค๋ฅ˜
  • node_modules ๋ฐ .next ์ œ๊ฑฐ

next build ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด next dev๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์ง€๋งŒ next build ๋จผ์ € ์‹คํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • ๋™์  ๊ฐ€์ ธ์˜ค๊ธฐ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ •๋ฆฌํ•œ ๋‹ค์Œ next dev๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋™์  ๊ฐ€์ ธ์˜ค๊ธฐ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ •๋ฆฌํ•œ ๋‹ค์Œ next build ๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ next dev๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์‚ฌ์šฉ์ž ํด๋”์—์„œ /.next , / node_modules , package-lock.json ๋ฐ /npm-cache/ ๋ฅผ ์‚ญ์ œํ•œ ๋‹ค์Œ npm i ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ์ง€์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํฌ๊ธฐํ•˜๊ณ  acorn ๋ฅผ ๋‚ด ์ข…์†์„ฑ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜์˜ "๋ฐ˜๋ณต์ž" ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ค๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์–ด๋Š ๊ฒƒ๋„ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

/Users/username/Sandboxes/mynext/node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js:1
(function (exports, require, module, __filename, __dirname) { import _Symbol$iterator from "../../core-js/symbol/iterator";

์š”๊ตฌ ์‚ฌํ•ญ:

1) ES ๋ชจ๋“ˆ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ server.js .

2) .babelrc:

{
  "presets": [
    "@babel/preset-env",
    "next/babel",
  ],
}

3) ํŒจํ‚ค์ง€.json

{
  "name": "nownext",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "@babel/cli": "^7.2.3",
    "@babel/core": "7.2.2",
    "@babel/node": "^7.2.2",
    "@babel/preset-env": "^7.3.4",
    "acorn": "^6.1.1",
    "express": "^4.16.4",
    "next": "^8.0.3",
    "react": "^16.8.4",
    "react-dom": "^16.8.4",
    "webpack": "4.28.4"
  },
  "scripts": {
    "dev": "babel-node server.js",
  }
}

๊ทธ๋Ÿฐ ๋‹ค์Œ

$ babel-node server.js

์œ„์˜ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋™์  ๊ฐ€์ ธ์˜ค๊ธฐ๋„ ์•„๋‹™๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ES ๋ชจ๋“ˆ์ด NextJS์—์„œ ์™„์ „ํžˆ ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค. @timneutkens ๋„์›€์ด ๋œ๋‹ค๋ฉด ๋ฐ๋ชจ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ivan-kleshnin ๊ทธ๊ฒƒ์€ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค: #6273 ์ด๊ฒƒ์€ ์นด๋‚˜๋ฆฌ์•„์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

package-lock.json ๋ฐ node_modules ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์›์‚ฌ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค.

rm package-lock.json
rm -rf node_modules
yarn dev

์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค!

https://github.com/zeit/next.js/issues/6940 ์—์„œ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.

@vasco3 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค:

npm install acorn
npm run dev // -> runs next and fails with the error described in this git issue
npm install next<strong i="7">@latest</strong> // -> no warnings
npm run dev // it works!!! ๐ŸŽ‰

๋‚˜๋Š” Yarn์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ๋„ ์„ค์น˜ํ–ˆ์œผ๋ฉฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค)

์ž, ์—ฌ๊ธฐ ์šฐ์Šน ์ฝค๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(100% ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ).
๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” ์ด๋ฏธ ๋‹ค์Œ v7์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • npm install next@latest -> ๋‹ค์Œ v8.0.1์„ ์„ค์น˜ํ•˜์ง€๋งŒ ๋„ํ† ๋ฆฌ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  • npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  • npm install acorn
  • npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  • npm install next@latest -> ๊ฒฝ๊ณ  ์—†์Œ
  • npm run dev ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!!! ๐ŸŽ‰

๊ฒฐ๋ก :
์—ด์‡ ๋Š” ๋‹ค์Œ ์ „์— ๋„ํ† ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

๊ฐ์‚ฌ ํ•ด์š”! ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋ฅผ ๊ตฌํ–ˆ๋‹ค.

์ž, ์—ฌ๊ธฐ ์šฐ์Šน ์ฝค๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(100% ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ).
๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” ์ด๋ฏธ ๋‹ค์Œ v7์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • npm install next@latest -> ๋‹ค์Œ v8.0.1์„ ์„ค์น˜ํ•˜์ง€๋งŒ ๋„ํ† ๋ฆฌ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  • npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  • npm install acorn
  • npm run dev -> ๋‹ค์Œ์— ์‹คํ–‰๋˜๊ณ  ์ด ์ž์‹ ๋ฌธ์ œ์— ์„ค๋ช…๋œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  • npm install next@latest -> ๊ฒฝ๊ณ  ์—†์Œ
  • npm run dev ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!!! ํƒ€๋‹ค

๊ฒฐ๋ก :
์—ด์‡ ๋Š” ๋‹ค์Œ ์ „์— ๋„ํ† ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! :๋ฐ•์ˆ˜:

์ž, ์—ฌ๊ธฐ ์šฐ์Šน ์ฝค๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(100% ์žฌํ˜„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ).
๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” ์ด๋ฏธ ๋‹ค์Œ v7์ด ์žˆ์Šต๋‹ˆ๋‹ค.

* `npm install next@latest` -> installs next v8.0.1 but warns about acorn

* `npm run dev` -> runs next and fails with the error described in this git issue

* `npm install acorn`

* `npm run dev` -> runs next and fails with the error described in this git issue

* `npm install next@latest` -> no warnings

* `npm run dev` it works!!! ๐ŸŽ‰

๊ฒฐ๋ก :
์—ด์‡ ๋Š” ๋‹ค์Œ ์ „์— ๋„ํ† ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

๋•๋ถ„์— ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘๐Ÿ‘

์ด ๋ฌธ์ œ๋Š” ๊ณง ์นด๋‚˜๋ฆฌ์•„ ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •๋  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

@TidyIQ ๊ณง ์ˆ˜์ •ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ npm ๋ฒ„๊ทธ ๋ผ๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

@Timer webpack์€ ์ด๋ฏธ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/webpack/webpack/pull/9370 ์ฐธ์กฐ

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„์ง ์ƒˆ ๊ธฐ๋Šฅ์œผ๋กœ ์™„์ „ํžˆ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†๋Š” ์ด์ „ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์—ฌ์ „ํžˆ ํŠธ๋žœ์ŠคํŒŒ์ผ๋œ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋™์  ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค./

Compiling client app. 
Compiling server app. 
[ error ] ./node_modules/next/dist/client/next-dev.js 23:6
Module parse failed: Unexpected token (23:6)
You may need an appropriate loader to handle this file type.
| 
| 
> import('./dev/noop'); // Support EventSource on Internet Explorer 11
| 
| if (!window.EventSource) {
[ wait ]  compiling ...
[ error ] ./node_modules/next/dist/client/next-dev.js 23:6
Module parse failed: Unexpected token (23:6)
You may need an appropriate loader to handle this file type.
| 
| 
> import('./dev/noop'); // Support EventSource on Internet Explorer 11
| 
| if (!window.EventSource) {
2019-07-13T08:07:59.942Z app:server:log Connected to redis
2019-07-13T08:07:59.947Z app:server:log > Ready on http://localhost:3000

๋…ธ๋“œ ๋ชจ๋“ˆ์„ rm-ingํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜์—ฌ ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ํŠน์ • ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ข… ํ•ด๊ฒฐ ๋‹จ๊ณ„๋Š” rm package-lock.json ๋ฐ rm -rf node_modules ์ด๋ฉฐ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Next 9์—์„œ๋งŒ ์ˆ˜์ • ๋˜์—ˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

@Timer [email protected] ๋ฅผ ์‹คํ–‰ ์ค‘์ธ๋ฐ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚œ ๋…ธ๋ ฅ ํ–ˆ์–ด:
1) ๋‹ค์Œ์„ ์ œ๊ฑฐํ•˜๊ณ  yarn add acorn ๋กœ ๋„ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ yarn next@latest ๋ฅผ ์‹คํ–‰ํ•ด๋„ ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค.
2) ๋ชจ๋“  node_modules ๋ฐ yarn.lock์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” react-datepicker๋กœ ๊ทธ๊ฒƒ์„ ๊ฒฝํ—˜ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

@Sm00g15 ๋ณต์ œํ’ˆ์ด ์ œ๊ณต๋˜์ง€ ์•Š์„ ๋•Œ ๋„์›€์„ ๋“œ๋ฆฌ๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์›นํŒฉ์„ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ–ˆ๋‚˜์š”?

webpack ๋ฐ @babel/core ์—…๋ฐ์ดํŠธ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด package-lock.json ๋ฐ node_modules ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด ๋ฒ„์ „์˜ Node๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๋‹ค๋ฅธ Node.js ํ”„๋กœ์ ํŠธ(Next.js๊ฐ€ ์•„๋‹˜)์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฌธ์ œ์˜ ์›์ธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. lock.json ๋ฐ node_modules๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ์†”๋ฃจ์…˜์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ. ๊ฐ์‚ฌ ํ•ด์š”.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰