Vscode-code-runner: ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ ์ฐธ์กฐ

์— ๋งŒ๋“  2016๋…„ 11์›” 09์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: formulahendry/vscode-code-runner

์ด JavaScript ์Šค ๋‹ˆํŽซ์„ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ฐฑํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?
--- js ์ฝ”๋“œ ---
ํ•„์š” ( '์ˆœ๊ฐ„')
console.log ( '--- ์‹œ์ž‘')
console.log ( 'moment (). format () :', moment (). format ())
console.log ( '--- ๋')

--- ์ถœ๋ ฅ ---
[์‹คํ–‰ ์ค‘] ๋…ธ๋“œ "c : \ lab \ temp-ackikjupmw.js"
--- ์‹œ์ž‘
C : \ lab \ temp-ackikjupmw.js : 3
console.log ( 'moment (). format () :', moment (). format ())
^

ReferenceError : ์ˆœ๊ฐ„์ด ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๊ฐœ์ฒด์—์„œ.(C : \ lab \ temp-ackikjupmw.js : 3 : 36)
Module._compile (module.js : 541 : 32)
Object.Module._extensions..js (module.js : 550 : 10)
Module.load (module.js : 458 : 32)
tryModuleLoad (module.js : 417 : 12)์—์„œ
Function.Module._load (module.js : 409 : 3)
Function.Module.runMain (module.js : 575 : 10)์—์„œ
์‹œ์ž‘ํ•  ๋•Œ (node.js : 160 : 18)
node.js : 449 : 3์—์„œ

[์™„๋ฃŒ]๊ฐ€ 0.189 ์ดˆ ํ›„์— ์ฝ”๋“œ = 1๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

question

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

npm i esm ํ•˜๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

"code-runner.executorMap": { "javascript": "node -r esm $fullFileName" }

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

์•ˆ๋…•ํ•˜์„ธ์š” @rana , ๊ธ€๋กœ๋ฒŒ ๋˜๋Š” C:\lab\node_modules moment npm ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @formulahendry ,

๋‚˜๋Š” ์ฝ”๋“œ ๋Ÿฌ๋„ˆ๋ฅผ ์ข‹์•„ํ•˜๊ณ  ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

์˜ˆ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” 'C : \ labnode_modules \ moment'์— ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„ ๋ชจ๋“  ๋…ธ๋“œ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. vscode-code-runner๋กœ js ์„ค์ •์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. JavaScript์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ์กฐ๊ธˆ ๋” ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“ˆ ์ฐธ์กฐ๊ฐ€์—†๋Š” ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํ˜ธ์ถœ์ด ์ž˜ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋„๊ตฌ๋ฅผ ๊ตฌ์„ฑํ•˜์ง€ ์•Š๋Š” ๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๊นŒ?

๋‹ค์Œ์€ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋ฌธ์„œ์—์„œ ๋‹ต๋ณ€์„๋ณด๊ณ  ์‹ถ์€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.

  1. require ( 'some-lib') ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ? ์˜ˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  2. import ๊ตฌ๋ฌธ "import moment from 'moment'"๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ? ์˜ˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ผ๋‚˜

์•ˆ๋…•ํ•˜์„ธ์š” @rana ,

์งˆ๋ฌธ 1์˜ ๊ฒฝ์šฐ require ( 'some-lib')๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Code Runner๋กœ js๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ js ํŒŒ์ผ์„ ์‰˜์—์„œ node C:\lab\your-file.js ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์…ธ (bash ๋˜๋Š” CMD)์—์„œ node C:\lab\your-file.js ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์งˆ๋ฌธ 2์˜ ๊ฒฝ์šฐ es6 ๊ตฌ๋ฌธ์œผ๋กœ js๋ฅผ ์‹คํ–‰ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
babel-node๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : npm install -g babel-cli
๊ทธ๋ฆฌ๊ณ  code-runner.executorMap ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

{
    "code-runner.executorMap": {
        "javascript": "babel-node"
    }
}

@formulahendry @rana ์—ฌ๊ธฐ์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์—ฌ๊ธฐ์— ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ ES6 / 7 ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ babel-cli ์„ธ๊ณ„์ ์œผ๋กœ (๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€)

    "code-runner.executorMap": {
      "javascript": "$workspaceRoot/node_modules/.bin/babel-node --harmony $fullFileName"
    }

--harmony ํ”Œ๋ž˜๊ทธ๋Š” babel-node ์‚ฌ์šฉ ๋ฐฉ์‹์— ๋”ฐ๋ผ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

@formulahendry ์ด๋Ÿฌํ•œ ํ›Œ๋ฅญํ•œ ์ œํ’ˆ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํŒŒ์ผ / ํด๋” ์œ„์น˜๋ฅผ ์ œ๊ณตํ•˜์—ฌ์ด๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๊ฒƒ์€ ๋ชจ๋“  ๊ฐ€์ ธ ์˜ค๊ธฐ / ์š”๊ตฌ ์‚ฌํ•ญ์ด ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ๋…ธ๋“œ ์„ธ๊ณ„์—์„œ ํ›Œ๋ฅญํ•˜๊ณ  ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

npm i esm ํ•˜๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

"code-runner.executorMap": { "javascript": "node -r esm $fullFileName" }

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