Feathers: [์งˆ๋ฌธ] ๋ชจ๋“ˆ ๋‚ด๋ณด๋‚ด๊ธฐ, ๊ฐ€์ ธ์˜ค๊ธฐ

์— ๋งŒ๋“  2017๋…„ 07์›” 20์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: feathersjs/feathers

ํ˜„์žฌ feather-cli์— ๊ธฐ๋ฐ˜ํ•œ ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” require ๋Œ€์‹  import, export ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ, ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด SyntaxError: Unexpected token export ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๊นƒํ„ธ์„ commonjs๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
https://github.com/feathersjs/feathers/issues/608 ์Šน์ธ ๋ฐ ๋ณ‘ํ•ฉ ํ›„ ์˜ค๋ฅ˜ ์—†์ด ๊ฐ€์ ธ์˜ค๊ธฐ, ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ œ ์งˆ๋ฌธ์€ require ๋Œ€์‹  ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

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

babel-register ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// package.json
}
  "dependencies": {
  "babel-preset-es2015": "^6.24.1",
  "babel-register": "^6.24.1",
  ...
}
// .babelrc
{
  "presets": ["es2015"]
}



md5-d9dbd6153ad663c52db1c46098188247



```js
// server.js < your actual code here
import express from 'express';
export const run () => {
     const app = express()
     ......
}

๋˜๋Š” ๋Ÿฐํƒ€์ž„์— babel-register ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ babel ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํžˆ ํŠธ๋žœ์ŠคํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

babel-register ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// package.json
}
  "dependencies": {
  "babel-preset-es2015": "^6.24.1",
  "babel-register": "^6.24.1",
  ...
}
// .babelrc
{
  "presets": ["es2015"]
}



md5-d9dbd6153ad663c52db1c46098188247



```js
// server.js < your actual code here
import express from 'express';
export const run () => {
     const app = express()
     ......
}

๋˜๋Š” ๋Ÿฐํƒ€์ž„์— babel-register ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ babel ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํžˆ ํŠธ๋žœ์ŠคํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•ญ์ƒ ์ตœ์‹  ๋ฒ„์ „์˜ Node๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ฒƒ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ ๋ฒ„์ „์—์„œ๋Š” async/await ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๊ธฐ๋ณธ์ ์œผ๋กœ Babel์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” https://github.com/feathersjs/generator-feathers/issues/31 ์—์„œ, ํ† ๋ก ์€ https://github.com/feathersjs/feathers-cli/issues ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, Babel๊ณผ ํ•จ๊ป˜ ES ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์ž‘/์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๊ณ  ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ(ํŠนํžˆ Node์˜ ๊ฒฝ์šฐ)์ด ์™„์ „ํžˆ ํ™•์ •๋˜์ง€ ์•Š์€ ์‚ฌ์–‘์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด @zusamann ์ด ์ง€์ ํ•œ Babel ์„ค์ • ์œผ๋กœ ES ๋ชจ๋“ˆ ๋ณ€ํ™˜๊ธฐ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋‹ซํžŒ ํ›„ ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด์„œ๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ๋Š” ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

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

๊ด€๋ จ ๋ฌธ์ œ

arkenstan picture arkenstan  ยท  3์ฝ”๋ฉ˜ํŠธ

rstegg picture rstegg  ยท  3์ฝ”๋ฉ˜ํŠธ

Mattchewone picture Mattchewone  ยท  4์ฝ”๋ฉ˜ํŠธ

perminder-klair picture perminder-klair  ยท  3์ฝ”๋ฉ˜ํŠธ

RickEyre picture RickEyre  ยท  4์ฝ”๋ฉ˜ํŠธ