주제 보기 babel nodemon
Table of Contents
nodejs – “babel-node” no se reconoce como un comando … Update New
17/08/2021 · Si el objetivo es simplemente hacer funcionar babel usando node V16 tal vez te sirva este articulo donde explica cómo configurar babel.Me parece que en lugar de ejecutar el paquete directamente con “nodemon –exec babel-node src/index.js” podrías usar npx como en el artículo: “nodemon –exec npx babel src/index.js”.
Read more
He estado varios días luchando con este error sin solución
Empecé un pequeño proyecto para explorar las nuevas características de Nodejs (version 16) pero no puedo configurar babel de ninguna manera
El error es el siguiente:
> [email protected] start > nodemon –exec babel-node src/index.js [nodemon] 2.0.12 [nodemon] 언제든지 다시 시작하려면 `rs` [nodemon]를 입력하여 경로를 관찰합니다
*.* [nodemon] 감시 확장: js,mjs,json [nodemon] 시작 `babel-node src/index.js` “babel-node” no se reconoce como un comando interno o externo, programa o archive por lotes ejecutable
[nodemon] 앱 충돌 – 시작하기 전에 파일 변경을 기다리는 중입니다…El proyecto de prueba es sumamente sencillo
구조:
–src -index.js — package.json –. babelrc
index.js
console.log(“안녕하세요”);
패키지.json
{ “name”: “config-test”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “start”: “nodemon – -exec babel-node src/index.js” }, “keywords”: [], “author”: “”, “license”: “ISC”, “devDependencies”: { “@babel/cli”: “^7.14. 8”, “@babel/core”: “^7.15.0”, “@babel/node”: “^7.14.9”, “@babel/plugin-proposal-class-properties”: “^7.14.5 “, “@babel/plugin-transform-runtime”: “^7.15.0”, “@babel/preset-env”: “^7.15.0”, “nodemon”: “^2.0.12” } }
.babelrc
{ “사전 설정”: [“@babel/preset-env”], “플러그인”: [ “@babel/plugin-proposal-class-properties” ] }
그는 instalar @babel/cli a nivel global pero sin exito를 의도했습니다
그는 También intente usando babel-cli pero tampoco funcionó입니다
Claro, con cualquier cambio en el package.json eliminino la 카페타 node_modules par asegurarme de instalar bien todas las dependencys.
Set Up a Starter Node.js/Express Project with ES6 (ft. Babel) Update
주제에 대한 새로운 업데이트 babel nodemon
For for instructions and detailed documentation, read my blog linked below.
Documentation: https://thinkwithcolor.com/set-up-a-starter-node-js-project-with-es6-ft-babel/
Github Repository: https://github.com/chandlerkeyes/node-starter-kit-es6
SUBSCRIBE TO MY MAIN CHANNEL – ChandlerKnowsBest:
https://www.youtube.com/user/ChandlerKnowsBest
SUBSCRIBE TO MY 3RD CHANNEL – KeyesToKre8: https://www.youtube.com/channel/UCnkFV-vx_p3sCC1VpfmK6AQ
Curious About KeyesToKre8? Watch my Get to Know Me Tag: https://www.youtube.com/watch?v=2-hIoOI0YVo\u0026t=32s
DONATE TO MY PATREON:
https://www.patreon.com/chandlerkeyes
Social Media:
Instagram: @chandlerkeyes http://instagram.com/chandlerkeyes
GitHub: https://github.com/chandlerkeyes
Equipment:
Canon 80D Kit: https://goo.gl/ZHXv5w
Neewer Ring Light: https://goo.gl/aZN3z7
Broadcast Microphone: https://goo.gl/Cbg4qg
Neewer NW-700 Condenser Microphone: https://goo.gl/JG3V47
Feel free to make/upload a response video! I’d love to see what my fans think.
Want to collaborate? Shoot me an email!
[email protected]
[email protected]
babel nodemon주제 안의 멋진 사진을 볼 수 있습니다

Babel 中文文档 · 下一代 JavaScript 编译器 New
nodemon –exec npm run babel-node — path/to/script.js 参数警告 使用 babel-node 调用 nodemon 时如果忘记使用双短划线,可能会导致错误地分析参数。
Read more
webpacker는 Rails 6을 위한 새로운 기본 자바스크립트 컴파일러입니다
babel을 사용한 트랜스파일 지원 기능이 내장되어 있습니다
이전 버전의 Rails에서 사용하려면:
젬 ‘웹패커’
MERN Stack – Login Page: Part 2 – Configuring Webpack, Babel, and, Nodemon New
주제에 대한 새로운 업데이트 babel nodemon
This is part 2 of my video tutorial on how to build a MERN stack login page. In this video, I show how to configure babel, webpack, and, nodemon.
Source Code: https://github.com/shamahoque/mern-skeleton
Recorded with https://screencast-o-matic.com
babel nodemon주제 안의 사진 몇 장

如何在vscode里面调试js和node.js – 双眸 – 博客园 New
nodemon –inspect –exec babel-node –presets env ./bin/www 这样就很方便了,项目可以正常的重启,每次重启一样会开启调试功能。 可是,我们并不想时刻开启调试功能怎么办? 这就需要使用上面说的attach模式了。 使用如下的命令正常的启动项目
Read more
一般大家调试都是在浏览器端调试js的,不过有些时候也想和后台一样在码工养下里面调试js或面试码工具下里面调试js或面试端调。 1,用来调试js.一:在左侧扩中搜索Debugger for Chrome并点击安装:.二:About Yourself.html工程目录下面点击f5, 或者在左侧选择调试按钮
,Where you are
,选择下拉按钮,会有一个添加,选择chrome
3: 之后会出现laungh.json in 项目目录下面
4: 不过对于不同的大码文件要调试的话,每次都需要修改一下配置文件
{ “version”: “0.2.0”, “configurations”: [{ “type”: “chrome”, “request”: “launch”, “name”: “Launch Chrome against localhost”, “url”: “http ://localhost:8080”, “webRoot”: “${workspaceRoot}” }, { “type”: “chrome”, “request”: “attach”, “name”: “Attach to Chrome”, “port” : 9222, “webRoot”: “${workspaceRoot}” }, { “name”: “Launch index.html (disable sourcemaps)”, “type”: “chrome”, “request”: “launch”, “sourceMaps” : false, “file”: “${workspaceRoot}/jsTest/test1/test1.html” #每次需要修改这里的文件地址 } ] }
5: 到这里就可以进行调试了,在.中选择 Launch index.html (disable sourcemaps) 调试项,按f5调试,会出现,同时打开goole浏览器,点击
,即可进入调试阶段
2,用来调试node.js.调试nodejs有很多方式,可以看这一篇 https://blog.risingstack.com/how-to-debug-nodej-js-with-the-best-tools-available/,.其中我最喜欢使用的还是V8 Inspector and vscode method。.按钮 in your vscode中,点击那个蜘蛛的按钮.侧栏,接下来添加配置.选择环境
Text for 就能看到launch.json.启动的时候,选择相应的配置,然后点击指向右侧的绿色三角
launch模式与attach模式
{ “version”: “0.2.0”, “configurations”: [ { “type”: “node”, “request”: “launch”, “name”: “Launch Program”, “program”: “${workspaceRoot }/index.js” }, { “type”: “node”, “request”: “attach”, “name”: “Attach to Port”, “address”: “localhost”, “port”: 5858 } ] }.当 Request 为 Launch 时, 就 是 是 是 了 了, 这 是 是 是 是 是 这 这 是 程 是 是 从 是 时 这 程 程 是 是 是 是 那 那 那 启 启 是 是 是 调试 那 一 直 直 处 是 是 调试 那 那 一 直 处 处 调试 是 调试 那 那 直 直 处 处 处 是 调试 那 那 一 直 处 处 调试 比 已 已 一 一 直 处 服 比 比 已 经 启 启 服 比 比 比 比 比 已 已 比 比 比 比 比 已 已 已 比 比 比 比 已 已 已 比 比 比项项 启启, 需 需 调试, 需 掉 已 已 经 的 的 的 项 去 去 已 已 重 重 项 启 启 启 启 中 中 重 重 启 启 启 启 启 服 重 重 重 启 启,比launch更方便一点。
You exist in debug中使用npm启动.很多时候我们将很长的启动命令及配置写在了package.jsonscripts中,比如
“scripts”: { “start”: “NODE_ENV=production PORT=8080 babel-node. /bin/www”, “dev”: “nodemon –inspect –exec babel-node –presets env. /bin/www ” },.我们希望让vscode使用npm的方式启动并调试,这就需要如下的配置
{ “name”: “Launch via NPM”, “type”: “node”, “request”: “launch”, “runtimeExecutable”: “npm”, “runtimeArgs”: [ “run-script”, “dev” / /这里的dev就对应package.json中的scripts中的dev ], “port”: 9229 // Indebug中使用nodemon启动.仅仅使用npm启动,虽然在dev命令中使用了nodemon,程序也可使用npm启,可重亿了之后,调试就scode。 { “type”: “node”, “request”: “launch”, “name”: “nodemon”, “runtimeExecutable”: “nodemon”, “args”: [“${workspaceRoot}/bin/www”], “restart”: true, “protocol”: “inspector”, //相当于–inspect了 “sourceMaps”: true, “console”: “integratedTerminal”, “internalConsoleOptions”: “neverOpen”, “runtimeArgs”: [ / /对应nodemon –inspect之后除了启动文件之外的其他配置 “–exec”, “babel-node”, “–presets”, “env” ] },.注意这里的runtimeArgs,如果这些配置是写在package.json中的话,就是这样的
nodemon –inspect –exec babel-node –presets env. /bin/www.这样就很方便了,项目可以正常的重启,每次重启一样会开启调试功能。.可是,我们并不想时刻开启调试功能怎么办?.这就需要使用上面说的attach模式了。.使用如下的命令正常的启动项目
nodemon –inspect –exec babel-node –presets env. /bin/www.当我们想要调试的时候,在vscode的debug中运行如下配置
Setup NodeJS with Babel for production #nodejs #babel New Update
주제에 대한 새로운 정보 babel nodemon
Today you will learn how to setup a nodejs project for production with Babel.
You will learn:
– How to configure absolute import with Babel
– Auto restart server with nodemon and babel and more.
Why and what is Babel?
We want to use latest javascript features. But we also want older nodejs compatibility. So we need a compiler that will compile our source code to older versions of javascript code. This is why we need Babel. Babel is the compiler that will do the work for us.
I have also wrote a blog about it on my website. Check that out.
All the command can be found inside Blog or project repository.
Resources:
Repository: https://github.com/thatanjan/nodejs-setup
Blog: https://www.culescoding.space/blog/setup-nodejs-with-babel-for-production
About me
Why do I do what I do?
— The Internet has revolutionized our life. I want to make the internet more beautiful and useful.
What do I do?
— I ended up being a full-stack software engineer.
What can I do?
— I can develop complex full-stack web applications like social media applications or e-commerce sites.
What have I done?
— I have developed a social media application called Confession. The goal of this application is to help people overcome their imposter syndrome by sharing our failure stories. I also love to share my knowledge. So, I run a youtube channel called Cules Coding where I teach people full-stack web development, data structure algorithms, and many more. So, Subscribe to Cules Coding so that you don’t miss the cool stuff.
Want to work with me?
— I am looking for a team where I can show my ambition and passion and produce great value for them.
Contact me through my email or any social media as @thatanjan. I would be happy to have a touch with you.
Contacts
Email: [email protected]
Linkedin: https://linkedin.com/in/thatanjan/
portfolio: https://thatanjan.me/
Github: https://github.com/thatAnjan/
Instagram personal: https://instagram.com/thatAnjan/
Twitter: https://twitter.com/thatAnjan
Blogs you might want to read:
Eslint, prettier setup with TypeScript and react: https://www.culescoding.space/blog/setup-eslint-prettier-with-typescript-and-react
What is Client-Side Rendering?: https://www.culescoding.space/blog/what-is-client-side-rendering
What is Server Side Rendering?: https://www.culescoding.space/blog/what-is-server-side-rendering
Everything you need to know about tree data structure: https://www.culescoding.space/blog/everything-you-need-to-know-about-tree-data-structure
13 reasons why you should use Nextjs: https://www.culescoding.space/blog/13-reasons-why-you-should-use-Nextjs
Videos you might want to watch:
Setup Eslint Prettier with Typescript and React -Nextjs, Create React App: http://youtu.be/T-n0mrssDiw
Everything you need to know about CSS in JS: https://youtu.be/Be_C_Op8Tx8
Toggle Dark mode with Material-UI: https://youtu.be/ag3je1g0BN8
Build a real-time view counter: https://youtu.be/B3HX2rWyKlU
Build a small search engine with MongoDB: https://youtu.be/C6VytdSDNSk
Playlists you might like:
Build a blog using JAMstack: https://www.youtube.com/watch?v=KYLBb1W1ZBA\u0026list=PLEr-WXao6eSPQzQAlkYpNLfcSm6pTiTpd
Material-UI basics course: https://www.youtube.com/watch?v=grjle8AcQRs\u0026list=PLEr-WXao6eSMddsL31fYlOGdbIk5nT-Pi
Quick tricks: https://www.youtube.com/watch?v=RECwLOZdiR4\u0026list=PLEr-WXao6eSPspqYqDd0ISbLdDbBAIPNR
Crash course: https://www.youtube.com/watch?v=rSa8sUC8m_4\u0026list=PLEr-WXao6eSNuG2mQyV_48RQoj5p8WM_q
How-to videos: https://www.youtube.com/watch?v=T-n0mrssDiw\u0026list=PLEr-WXao6eSOVI5LSBn23tsqCp-pCAwiu
Stay safe and good bye.
babel nodemon주제 안의 사진 몇 장

node.js – nodemon not found in npm – Stack Overflow New Update
My nodemon vanished after installing babel (why?). Tried a lot of stuff. Here is how I solved it: sudo npm i -g nodemon Just reinstall it with sudo. Yeah. Share. Improve this answer. Follow edited Dec 11, 2019 at 23:32. answered Oct 4, 2019 at 15:59. Henrique Bruno Henrique Bruno.
Read more
문제가 있습니다
nodemon이 npm 스크립트(예: npm start )를 실행하지 않습니다
하지만 npm 스크립트 외부의 명령줄에서 nodemon을 호출하면 nodemon은 정상적으로 실행됩니다
$ nodemon server.js 14 Feb 22:59:51 – [nodemon] v1.3.7 14 Feb 22:59:51 – [nodemon] 언제든지 다시 시작하려면 `rs`를 입력하십시오
14 Feb 22:59:51 – [nodemon] 감시: *.* 14 Feb 22:59:51 – [nodemon]이 `node server.js`를 시작합니다
npm 스크립트에서 호출되는 방법:
package.json {. .
“스크립트”: { “시작”: “노드몬 서버.js” } }
npm 시작 스크립트가 실행될 때:
$ npm start > [email protected] start /home/akul/Documents/aaa > nodemon server.js sh: 1: nodemon: npm 오류를 찾을 수 없습니다! Linux 3.13.0-45-일반 npm 오류! argv “노드” “/home/akul/npm-global/bin/npm” “시작” npm 오류! 노드 v0.12.0 npm 오류! npm v2.5.0 npm 오류! 코드 ELIFECYCLE npm 오류! [email protected] 시작: `nodemon server.js` npm 오류! 종료 상태 127 npm 오류! npm 오류! [email protected] 시작 스크립트 ‘nodemon server.js’에서 실패했습니다
npm 오류! 이것은 aaa 패키지, npm ERR의 문제일 가능성이 높습니다! npm 자체가 아닙니다
npm 오류! 작성자에게 이것이 시스템에서 실패했다고 알려주십시오: npm ERR! nodemon server.js npm 오류! 다음을 통해 정보를 얻을 수 있습니다
npm ERR! npm 소유자 ls aaa npm 오류! 위의 추가 로깅 출력이 있을 수 있습니다
npm 오류! 지원 요청 시 다음 파일을 포함하십시오
npm ERR! /home/akul/Documents/aaa/npm-debug.log
해결책을 찾고 있지만 찾지 못했습니다.
Bizzey \u0026 SRNO – Meditatie ft. Bryan Mg \u0026 Bo Hélène New Update
주제에 대한 새로운 업데이트 babel nodemon
Check ‘Meditatie’ van Bizzey \u0026 SRNO op je favo streaming dienst: https://Bizzey.lnk.to/Meditatie
—
Video Credits:
A Framez Production
Muziek Credits:
Producer: SRNO
Studio Personnel, Mixer, Associated Performer, Music Production, Drum Programming, Bass Programming, Guitar, Synthesizer: Serrano Gaddum
Studio Personnel, Mastering Engineer: Darius van Helfteren
Associated Performer, Vocals: Bizzey
Associated Performer, Vocals: Bryan Mg
Associated Performer, Vocals: Bo Hélène
Composer: Serrano Gaddum
Author: Leo Roelandschap
Author: Bryan Mumvudi
Author: Bo Hélène
—
Subscribe op het Noah’s Ark YouTube kanaal: http://noahsark.lnk.to/subscribe
Volg Noah’s Ark op social media:
https://instagram.com/noahsark
https://www.tiktok.com/@noahsarklabel
https://facebook.com/noahsarklabel
https://twitter.com/noahsarklabel
https://www.noahsark.nl
#NoahsArk #Bizzey #Meditatie
babel nodemon주제 안의 사진 몇 장

Is there a way to use npm scripts to run … – Stack Overflow New
install nodemon(npm install nodemon –save-dev) and ts-node(npm install ts-node –save-dev) second: create a nodemon.json. I like to keep my nodemon config in a seperat nodemon.json to make the npm scripts a tad easier to read. So create nodemon.json in the root of the project with the following content:
Read more
무슨 일이야
문제는 여기 모든 파일에 두 명의 감시자가 있다는 것입니다
하나는 tsc -w이고 하나는 nodemon입니다.
.ts 파일이 변경되면 tsc는 이를 감지하고 컴파일하고 대상 폴더에. js 버전을 생성합니다
이제 Nodemon의 관점에서 두 가지를 감지합니다
변경 사항(적어도) — 하나는. ts용이고 하나는. js용입니다
첫 번째 변경에서는 자체적으로 다시 시작되지만 두 번째 변경에서는 다른 “시작”이 이미 진행 중임을 알지 못하므로 다시 시작하려고 시도하지만 실패합니다
나에게 그것은 nodemon 버그입니다
https://github.com/remy/nodemon/issues/763을 참조하십시오.
솔루션
1) tsc-watch –onSuccess를 사용합니다
tsc-watch에는 노드를 넣을 수 있는 –onSuccess가 있습니다
이렇게 하면 하나의 감시자만 갖게 됩니다
2) Delay nodemon
nodemon 재시작을 쉽게 지연시킬 수 있습니다(–delay 참조)
최소한의 설정 변경이 필요합니다
3) nodemon이 TSC의 대상 폴더만 모니터링하도록 합니다.
Ben Goes Back on the Road Update New
주제에 대한 새로운 업데이트 babel nodemon
Plus, Ben and Karen do some puzzles. Full Road to 2850 Stream [03-27-2022]
Sponsored by NordVPN
Broadcasted live on Twitch — Watch live at https://www.twitch.tv/gmbenjaminfinegold
Signup or gift a chess.com Premium membership to get access to their lessons, remove ads, improve your chess, AND help Ben at the same time!!
Upgrade your chess.com membership or join! – http://go.chess.com/finegold
Buy Merch today! https://ccscatlmerch.com/
Watch live at https://www.twitch.tv/gmbenjaminfinegold
Please consider a donation at: https://atlchessclub.com/donate/
Follow me on Twitter: https://twitter.com/ben_finegold
#benfinegold #chess #roadto2850 #NordVPN
babel nodemon주제 안의 사진 몇 장

Debug Node.js Apps using Visual Studio Code 최신
Nodemon Setup: Use nodemon to relaunch a debug session automatically whenever the JavaScript source has changed. Make sure that you have nodemon installed globally. Note that terminating the debug session only terminates the program to debug, not nodemon itself. … Babel. For Babel, you’ll want to set the sourceMaps option to true, or pass the …
Read more
VS Code에서 Node.js 디버깅
Visual Studio Code 편집기에는 Node.js 런타임에 대한 디버깅 지원이 내장되어 있으며 JavaScript, TypeScript 및 JavaScript로 변환되는 기타 여러 언어를 디버그할 수 있습니다
적절한 시작 구성 기본값과 스니펫을 제공하는 VS Code를 사용하면 Node.js 디버깅을 위한 프로젝트를 간단하게 설정할 수 있습니다
VS Code에서 Node.js 프로그램을 디버깅할 수 있는 몇 가지 방법이 있습니다
자동 연결을 사용하여 VS Code의 통합 터미널에서 실행하는 프로세스를 디버그합니다
통합 터미널을 사용하는 것과 유사한 JavaScript 디버그 터미널을 사용합니다
시작 구성을 사용하여 프로그램을 시작하거나 VS Code 외부에서 시작된 프로세스에 연결합니다
자동 첨부
자동 연결 기능이 활성화된 경우 노드 디버거는 VS Code의 통합 터미널에서 시작된 특정 Node.js 프로세스에 자동으로 연결합니다
이 기능을 활성화하려면 명령 팔레트에서 Toggle Auto Attach 명령(⇧⌘P(Windows, Linux Ctrl+Shift+P))을 사용하거나 이미 활성화되어 있는 경우 Auto Attach 상태 표시줄 항목을 사용합니다
세 가지가 있습니다
결과 빠른 선택 및 debug.javascript.autoAttachFilter 설정을 통해 선택할 수 있는 자동 연결 모드
smart(기본값) – node_modules 폴더 외부에서 스크립트를 실행하거나 mocha 또는 ts-node와 같은 일반적인 ‘runner’ 스크립트를 사용하면 프로세스가 디버깅됩니다
Auto Attach Smart Pattern 설정( debug.javascript.autoAttachSmartPattern )을 사용하여 ‘runner’ 스크립트 허용 목록을 구성할 수 있습니다
(기본값) – 폴더 외부에서 스크립트를 실행하거나 mocha 또는 mocha와 같은 일반적인 ‘runner’ 스크립트를 사용하는 경우 ts-node에서 프로세스가 디버깅됩니다
설정( )을 사용하여 ‘러너’ 스크립트 허용 목록을 구성할 수 있습니다
항상 – 통합 터미널에서 시작된 모든 Node.js 프로세스가 디버깅됩니다.
– 통합 터미널에서 시작된 모든 Node.js 프로세스가 디버깅됩니다
onlyWithFlag – –inspect 또는 –inspect-brk 플래그로 시작된 프로세스만 디버깅됩니다.
자동 연결을 활성화한 후 터미널을 다시 시작해야 합니다
터미널 오른쪽 상단에 있는 ⚠ 아이콘을 클릭하거나 새로 생성하면 됩니다
그러면 디버거가 1초 이내에 프로그램에 연결되어야 합니다
자동 첨부가 켜져 있으면 자동 첨부 항목이 VS Code 창 하단의 상태 표시줄에 나타납니다
클릭하면 자동 첨부 모드를 변경하거나 일시적으로 끌 수 있습니다
일시적으로 자동 연결을 끄는 것은 디버깅이 필요하지 않지만 기능을 완전히 비활성화하고 싶지는 않은 일부 일회성 프로그램을 실행하는 경우에 유용합니다.
추가 구성
기타 시작 구성 속성
일반적으로 launch.json에 있는 다른 속성을 적용하여 debug.javascript.terminalOptions 설정에서 자동으로 연결할 수 있습니다
예를 들어 skipFiles에 노드 내부를 추가하려면 사용자 또는 작업 공간 설정에 다음을 추가할 수 있습니다
“debug.javascript.terminalOptions” : { “skipFiles” : [ “
자동 첨부 스마트 패턴
스마트 자동 연결 모드에서 VS Code는 코드에 연결을 시도하고 디버깅에 관심이 없는 빌드 도구에는 연결하지 않습니다
이것은 glob 패턴 목록에 대해 기본 스크립트를 일치시켜 수행합니다
glob 패턴은 debug.javascript.autoAttachSmartPattern 설정에서 구성할 수 있으며 기본값은 다음과 같습니다
[ ‘!**/node_modules/**’ , // node_modules 폴더의 스크립트 제외 ‘**/$KNOWN_TOOLS$/**’ // 그러나 몇 가지 일반적인 도구는 포함합니다];
$KNOWN_TOOLS$는 ts-node , mocha , ava 등과 같은 일반적인 ‘코드 실행기’ 목록으로 대체되었습니다
이러한 설정이 작동하지 않으면 이 목록을 수정할 수 있습니다
예를 들어 mocha를 제외하고 my-cool-test-runner 를 포함하려면 두 줄을 추가할 수 있습니다
[ ‘!**/node_modules/**’ , ‘**/$KNOWN_TOOLS$/**’ , ‘!**/node_modules/mocha/**’ , // “!” “mocha” 노드 모듈의 모든 스크립트를 제외하려면 ‘**/node_modules/my-cool-test-runner/**’ // 사용자 지정 테스트 러너에 스크립트 포함 ];자바스크립트 디버그 터미널
자동 연결과 유사한 방식으로 JavaScript 디버그 터미널은 사용자가 실행하는 모든 Node.js 프로세스를 자동으로 디버그합니다
명령 팔레트( kbs(workbench.action.showCommands) )에서 디버그: JavaScript 디버그 터미널 만들기 명령을 실행하거나 터미널 전환기 드롭다운에서 JavaScript 디버그 터미널 만들기를 선택하여 디버그 터미널을 만들 수 있습니다.
추가 구성
기타 시작 구성 속성
일반적으로 launch.json에 있는 다른 속성을 debug.javascript.terminalOptions 설정의 디버그 터미널에 적용할 수 있습니다
예를 들어 skipFiles에 노드 내부를 추가하려면 사용자 또는 작업 공간 설정에 다음을 추가할 수 있습니다
“debug.javascript.terminalOptions” : { “skipFiles” : [ “
구성을 시작합니다
시작 구성은 VS Code에서 디버깅을 설정하는 전통적인 방법이며 복잡한 응용 프로그램을 실행하기 위한 대부분의 구성 옵션을 제공합니다
이 섹션에서는 고급 디버깅 시나리오를 위한 구성 및 기능에 대해 자세히 설명합니다
소스 맵을 사용한 디버깅, 외부 코드 단계별 실행, 원격 디버깅 수행 등에 대한 지침을 찾을 수 있습니다
소개 비디오를 보려면 Node.js 디버깅 시작하기를 참조하세요
참고: 다음을 수행하는 경우 이제 막 VS Code를 시작하는 경우 디버깅 항목에서 일반적인 디버깅 기능과 launch.json 구성 파일 생성에 대해 알아볼 수 있습니다
구성 속성 시작
디버깅 구성은 작업 영역의. vscode 폴더에 있는 launch.json 파일에 저장됩니다
디버깅 구성 파일의 생성 및 사용에 대한 소개는 일반 디버깅 문서에 있습니다
아래는 Node.js 디버거와 관련된 일반적인 launch.json 속성에 대한 참조입니다
vscode-js-debug 옵션 문서에서 전체 옵션 세트를 볼 수 있습니다.
다음 속성은 launch 및 attach 유형의 시작 구성에서 지원됩니다
outFiles – 생성된 JavaScript 파일을 찾기 위한 glob 패턴의 배열입니다
소스 맵.
– 생성된 JavaScript 파일을 찾기 위한 glob 패턴 배열 섹션을 참조하십시오
소스 맵 섹션을 참조하십시오
resolveSourceMapLocations – 소스 맵이 구문 분석되어야 하는 위치에 대한 glob 패턴의 배열입니다
소스 맵 섹션을 참조하십시오
– 소스 맵이 구문 분석되어야 하는 위치에 대한 glob 패턴의 배열입니다
소스 맵 섹션을 참조하십시오
timeout – 세션을 다시 시작할 때 이 시간(밀리초) 후에 포기합니다
Node.js에 연결 섹션을 참조하십시오
– 세션을 다시 시작할 때 이 밀리초 후에 포기하십시오
Node.js에 연결 섹션을 참조하세요
stopOnEntry – 프로그램이 시작되면 즉시 중단됩니다.
– 프로그램이 시작되면 즉시 중단됩니다
localRoot – VS Code의 루트 디렉토리
아래 원격 디버깅 섹션을 참조하십시오
– VS Code의 루트 디렉토리
아래 원격 디버깅 섹션을 참조하세요
remoteRoot – 노드의 루트 디렉토리
아래 원격 디버깅 섹션을 참조하십시오
– 노드의 루트 디렉토리
아래 원격 디버깅 섹션을 참조하세요
smartStep – 소스 파일에 매핑되지 않는 코드를 자동으로 건너뜁니다
스마트 스테핑 섹션을 참조하십시오
– 소스 파일에 매핑되지 않는 코드를 자동으로 건너뜁니다
스마트 스테핑 섹션을 참조하십시오
skipFiles – 이러한 glob 패턴이 적용되는 파일을 자동으로 건너뜁니다
흥미롭지 않은 코드 건너뛰기 섹션을 참조하세요
– 이러한 glob 패턴이 포함된 파일을 자동으로 건너뜁니다
흥미롭지 않은 코드 건너뛰기 섹션을 참조하세요
trace – 진단 출력 활성화.
이러한 속성은 요청 유형 launch :의 시작 구성에만 사용할 수 있습니다
program – 디버그할 Node.js 프로그램의 절대 경로.
– 디버그할 Node.js 프로그램의 절대 경로
args – 디버그할 프로그램에 전달되는 인수입니다
이 속성은 배열 유형이며 개별 인수를 배열 요소로 예상합니다.
– 디버그할 프로그램에 전달된 인수
이 속성은 배열 유형이며 개별 인수를 배열 요소로 예상합니다
cwd – 이 디렉토리에서 디버그할 프로그램을 시작합니다.
– 이 디렉토리에서 디버그할 프로그램을 시작합니다
runtimeExecutable – 사용할 런타임 실행 파일의 절대 경로입니다
기본값은 노드입니다
‘npm’ 및 기타 도구에 대한 시작 구성 지원 섹션을 참조하세요
– 사용할 런타임 실행 파일의 절대 경로입니다
기본값은 입니다
‘npm’ 및 기타 도구에 대한 시작 구성 지원 섹션을 참조하세요
runtimeArgs – 런타임 실행 파일에 전달된 선택적 인수.
– 런타임 실행 파일에 전달된 선택적 인수
runtimeVersion – “nvm”(또는 “nvm-windows”) 또는 “nvs”가 Node.js 버전 관리에 사용되는 경우 이 속성을 사용하여 Node.js의 특정 버전을 선택할 수 있습니다
아래 다중 버전 지원 섹션을 참조하십시오
– “nvm”(또는 “nvm-windows”) 또는 “nvs”가 Node.js 버전 관리에 사용되는 경우 이 속성을 사용하여 Node.js의 특정 버전을 선택할 수 있습니다
아래의 다중 버전 지원 섹션을 참조하십시오
env – 선택적 환경 변수
이 속성은 환경 변수를 문자열 형식의 키/값 쌍 목록으로 예상합니다
– 선택적 환경 변수
이 속성은 환경 변수를 문자열 형식의 키/값 쌍 목록으로 예상합니다
envFile – 환경 변수 정의가 포함된 파일의 선택적 경로입니다
아래 외부 파일에서 환경 변수 로드 섹션을 참조하십시오
– 환경 변수 정의가 포함된 파일의 선택적 경로입니다
아래 외부 파일에서 환경 변수 로드 섹션을 참조하세요
console – 프로그램을 실행하기 위한 콘솔( internalConsole , 통합터미널 , externalTerminal )
아래의 노드 콘솔 섹션을 참조하십시오.
– 프로그램을 실행하는 콘솔( , , )
아래의 노드 콘솔 섹션을 참조하십시오
outputCapture – std 로 설정하면 디버그 포트를 통해 출력을 수신 대기하는 대신 stdout/stderr 프로세스의 출력이 디버그 콘솔에 표시됩니다
이것은 console.* API를 사용하는 대신 stdout/stderr 스트림에 직접 쓰는 프로그램 또는 로그 라이브러리에 유용합니다
이 속성은 요청 유형이 연결되는 시작 구성에만 사용할 수 있습니다
다시 시작 – 종료 시 연결을 다시 시작합니다
자동으로 디버그 세션 다시 시작 섹션을 참조하십시오
– 종료 시 연결을 다시 시작합니다
자동으로 디버그 세션 다시 시작 섹션을 참조하세요
protocol – 사용할 디버그 프로토콜입니다
위의 지원되는 노드 유사 런타임 섹션을 참조하십시오
– 사용할 디버그 프로토콜
위의 지원되는 노드 유사 런타임 섹션을 참조하세요
포트 – 사용할 디버그 포트입니다
Node.js에 연결 및 원격 디버깅 섹션을 참조하세요
– 사용할 디버그 포트입니다
Node.js에 연결 및 원격 디버깅 섹션을 참조하세요
address – 디버그 포트의 TCP/IP 주소입니다
Node.js에 연결 및 원격 디버깅 섹션을 참조하세요
– 디버그 포트의 TCP/IP 주소입니다
Node.js에 연결 및 원격 디버깅 섹션을 참조하세요
processId – 디버거는 USR1 신호를 보낸 후 이 프로세스에 연결을 시도합니다
이 설정을 사용하면 디버거가 디버그 모드에서 시작되지 않은 이미 실행 중인 프로세스에 연결할 수 있습니다
processId 속성을 사용하는 경우 디버그 포트는 Node.js 버전(및 사용된 프로토콜)에 따라 자동으로 결정되며 명시적으로 구성할 수 없습니다
따라서 포트 속성을 지정하지 마십시오
– 디버거는 USR1 신호를 보낸 후 이 프로세스에 연결을 시도합니다
이 설정을 사용하면 디버거가 디버그 모드에서 시작되지 않은 이미 실행 중인 프로세스에 연결할 수 있습니다
특성을 사용할 때 디버그 포트는 Node.js 버전(및 사용된 프로토콜)에 따라 자동으로 결정되며 명시적으로 구성할 수 없습니다
따라서 속성을 지정하지 마십시오
continueOnAttach – 연결할 때 일시 중지된 경우 프로세스를 계속할지 여부
이 옵션은 –inspect-brk. .로 프로그램을 시작하는 경우에 유용합니다
일반적인 시나리오에 대한 구성을 시작합니다
launch.json 파일에서 IntelliSense(⌃Space(Windows, Linux Ctrl+Space))를 트리거하여 일반적으로 사용되는 Node.js 디버깅 시나리오에 대한 시작 구성 스니펫을 볼 수 있습니다
구성 추가를 사용하여 스니펫을 불러올 수도 있습니다
버튼은 launch.json 편집기 창의 오른쪽 하단에 있습니다
사용 가능한 스니펫은 다음과 같습니다.
프로그램 실행 : Node.js 프로그램을 디버그 모드로 실행합니다
: Node.js 프로그램을 디버그 모드로 실행합니다
npm을 통해 시작: npm ‘디버그’ 스크립트를 통해 Node.js 프로그램을 시작합니다
package.json에 npm 디버그 스크립트를 정의한 경우 시작 구성에서 직접 사용할 수 있습니다
npm 스크립트에 사용된 디버그 포트가 스니펫에 지정된 포트와 일치하는지 확인합니다.
: npm ‘debug’ 스크립트를 통해 Node.js 프로그램을 시작합니다
package.json에 npm 디버그 스크립트를 정의한 경우 시작 구성에서 직접 사용할 수 있습니다
npm 스크립트에 사용된 디버그 포트가 스니펫에 지정된 포트와 일치하는지 확인하십시오
Attach : 로컬에서 실행되는 Node.js 프로그램의 디버그 포트에 연결합니다
디버그할 Node.js 프로그램이 디버그 모드에서 시작되었는지 확인하고 사용된 디버그 포트가 스니펫에 지정된 것과 동일한지 확인합니다.
: 로컬에서 실행되는 Node.js 프로그램의 디버그 포트에 연결합니다
디버그할 Node.js 프로그램이 디버그 모드에서 시작되었고 사용된 디버그 포트가 스니펫에 지정된 것과 동일한지 확인하십시오
원격 프로그램에 연결 : address 속성으로 지정된 호스트에서 실행 중인 Node.js 프로그램의 디버그 포트에 연결합니다
디버그할 Node.js 프로그램이 디버그 모드에서 시작되었고 사용된 디버그 포트가 스니펫에 지정된 것과 동일한지 확인하십시오
VS Code가 작업 공간과 원격 호스트의 파일 시스템 간에 소스 파일을 매핑할 수 있도록 하려면 localRoot 및 remoteRoot 속성에 대해 올바른 경로를 지정해야 합니다
: 지정된 호스트에서 실행 중인 Node.js 프로그램의 디버그 포트에 연결 속성
디버그할 Node.js 프로그램이 디버그 모드에서 시작되었고 사용된 디버그 포트가 스니펫에 지정된 것과 동일한지 확인하십시오
VS Code가 작업 공간과 원격 호스트의 파일 시스템 간에 소스 파일을 매핑할 수 있도록 하려면 및 속성에 대해 올바른 경로를 지정해야 합니다
프로세스 ID로 연결: 프로세스 선택기를 열어 디버깅을 위한 노드 또는 꿀꺽꿀꺽 프로세스를 선택합니다
이 실행 구성을 사용하면 디버그 모드에서 시작되지 않은 gulp 프로세스나 노드에 연결할 수도 있습니다
: 프로세스 선택기를 열어 디버깅을 위한 노드 또는 gulp 프로세스를 선택합니다
이 시작 구성을 사용하면 디버그 모드에서 시작되지 않은 gulp 프로세스나 노드에 연결할 수도 있습니다
Nodemon 설정: nodemon을 사용하여 JavaScript 소스가 변경될 때마다 디버그 세션을 자동으로 다시 시작합니다
nodemon이 전역적으로 설치되어 있는지 확인하십시오
디버그 세션을 종료하면 nodemon 자체가 아니라 디버그할 프로그램만 종료됩니다
nodemon을 종료하려면 통합 터미널에서 Ctrl+C를 누릅니다
: JavaScript 소스가 변경될 때마다 nodemon을 사용하여 디버그 세션을 자동으로 다시 시작합니다
nodemon이 전역적으로 설치되어 있는지 확인하십시오
디버그 세션을 종료하면 nodemon 자체가 아니라 디버그할 프로그램만 종료됩니다
nodemon을 종료하려면 통합 터미널에서 를 누르십시오
Mocha 테스트: 프로젝트의 테스트 폴더에서 모카 테스트를 디버그합니다
프로젝트의 node_modules 폴더에 ‘mocha’가 설치되어 있는지 확인하십시오
: 프로젝트 폴더에서 mocha 테스트를 디버그하십시오
프로젝트의 폴더에 ‘mocha’가 설치되어 있는지 확인하십시오
Yeoman 생성기 : Yeoman 생성기를 디버그합니다
스니펫은 생성기의 이름을 지정하도록 요청합니다
프로젝트의 node_modules 폴더에 ‘yo’가 설치되어 있고 생성된 프로젝트가 프로젝트 폴더에서 npm 링크를 실행하여 디버깅을 위해 설치되었는지 확인하십시오.
: yoman 생성기를 디버그하십시오
스니펫은 생성기의 이름을 지정하도록 요청합니다
프로젝트의 폴더에 ‘yo’가 설치되어 있고 생성된 프로젝트가 프로젝트 폴더에서 실행하여 디버깅을 위해 설치되었는지 확인하십시오
꿀꺽 꿀꺽 꿀꺽 마시기 작업: 꿀꺽 꿀꺽 꿀꺽 마시기 작업을 디버그합니다
프로젝트의 node_modules 폴더에 ‘gulp’가 설치되어 있는지 확인하십시오.
: 꿀꺽 꿀꺽 꿀꺽 꿀꺽 마시기 작업을 디버그합니다
프로젝트의 폴더에 ‘gulp’가 설치되어 있는지 확인하십시오
Electron Main: Electron 애플리케이션의 기본 Node.js 프로세스를 디버그합니다
스니펫은 Electron 실행 파일이 작업 공간.
노드 콘솔의 node_modules/.bin 디렉토리에 설치되었다고 가정합니다
기본적으로 Node.js 디버그 세션은 내부 VS Code 디버그 콘솔에서 대상을 시작합니다
디버그 콘솔은 콘솔에서 입력을 읽어야 하는 프로그램을 지원하지 않으므로 시작 구성에서 콘솔 속성을 각각 externalTerminal 또는 통합터미널로 설정하여 외부 터미널을 활성화하거나 VS Code 통합 터미널을 사용할 수 있습니다
기본값은 internalConsole 입니다.
외부 터미널을 사용하는 경우, terminal.external.windowsExec, terminal.external.osxExec 및 terminal.external.linuxExec 설정을 통해 사용할 터미널 프로그램을 구성할 수 있습니다.
노드를 실행하는 대신
node.js 프로그램을 직접 노드와 함께 사용하는 경우 시작 구성에서 직접 ‘npm’ 스크립트 또는 기타 작업 실행 도구를 사용할 수 있습니다
PATH에서 사용할 수 있는 모든 프로그램(예: ‘npm’, ‘mocha’, ‘gulp’ 등)은 runtimeExecutable 속성에 사용할 수 있으며 인수는 runtimeArgs.
속성을 통해 전달될 수 있고 인수는
npm 스크립트나 다른 도구가 실행할 프로그램을 암시적으로 지정하는 경우 program 속성을 설정할 필요가 없습니다
‘npm’ 예제를 살펴보겠습니다
package.json에 ‘디버그’ 스크립트가 있는 경우, 예를 들면 다음과 같습니다
“스크립트” : { “디버그” : “노드 myProgram.js” },
해당 시작 구성은 다음과 같습니다
{ “name” : “npm을 통해 실행” , “type” : “node” , “request” : “launch” , “cwd” : “${workspaceFolder}” , “runtimeExecutable” : “npm” , “runtimeArgs” : [ “실행 스크립트” , “디버그” ] }
다중 버전 지원
‘nvm'(또는 ‘nvm-windows’)을 사용하여 Node.js 버전을 관리하는 경우 특정 버전의 Node.js를 선택하기 위해 시작 구성에서 runtimeVersion 속성을 지정할 수 있습니다
{ “유형”: “노드”, “요청”: “실행”, “이름”: “테스트 시작”, “런타임 버전”: “14”, “프로그램”: “${workspaceFolder}/test.js” }
‘nvs’를 사용하여 Node.js 버전을 관리하는 경우 runtimeVersion 속성을 사용하여 특정 버전, 아키텍처 및 Node.js 버전을 선택할 수 있습니다
예를 들면 다음과 같습니다
{ “유형”: “노드”, “요청”: “실행”, “이름”: “테스트 시작”, “런타임 버전”: “chackracore/8.9.4/x64”, “프로그램”: “${workspaceFolder}/ test.js” }
기능이 버전을 자동으로 다운로드 및 설치하지 않으므로 runtimeVersion 속성과 함께 사용하려는 Node.js 버전이 설치되어 있는지 확인하십시오
예를 들어 “runtimeVersion”: “7.10.1”을 시작 구성에 추가하려는 경우 통합 터미널에서 nvm install 7.10.1 또는 nvs add 7.10.1과 같은 것을 실행해야 합니다
마이너 및 패치 버전이며 예를 들어 “runtimeVersion”: “14” 이면 시스템에 설치된 가장 최근의 14.xy 버전이 사용됩니다
외부 파일에서 환경 변수를 로드합니다
VS Code 노드 디버거는 파일에서 환경 변수를 로드하고 Node.js 런타임에 전달하는 것을 지원합니다
이 기능을 사용하려면 시작 구성에 envFile 속성을 추가하고 환경 변수가 포함된 파일의 절대 경로를 지정하십시오
//..
“envFile” : “${workspaceFolder}/.env” , “env” : { “USER” : “john doe” } //…
env 사전에 지정된 모든 환경 변수는 변수를 재정의합니다
파일에서 로드.
다음은. env 파일의 예입니다
USER=doe PASSWORD=abc123 # 주석 # 빈 값: empty= # 따옴표로 묶인 문자열로 확장된 새 줄: lines=”foo.bar”
Node.js에 연결합니다
VS Code 디버거를 외부 Node.js 프로그램에 연결하려면 다음과 같이 Node.js를 시작합니다
노드 –inspect program.js
또는 프로그램이 실행을 시작해서는 안 되지만 디버거가 연결될 때까지 기다려야 하는 경우:
노드 –inspect-brk program.js
이제 프로그램에 디버거를 연결하는 몇 가지 옵션이 있습니다.
모든 잠재적인 후보 프로세스를 나열하고 하나를 선택할 수 있는 “프로세스 선택기”를 엽니다
모든 구성 옵션을 명시적으로 지정하는 “연결” 구성을 만든 다음 F5 키를 누릅니다
다음 옵션을 자세히 살펴보겠습니다
노드 프로세스 작업에 연결합니다
명령 팔레트의 노드 프로세스에 연결 명령(⇧⌘P(Windows, Linux Ctrl+Shift+P))은 Node.js 디버거에서 사용할 수 있는 모든 잠재적 프로세스를 나열하는 빠른 선택 메뉴를 엽니다
선택기에 나열된 개별 프로세스는 디버그 포트와 프로세스 ID를 표시합니다
해당 목록에서 Node.js 프로세스를 선택하면 Node.js 디버거가 해당 프로세스에 연결을 시도합니다
Node.js 프로세스 외에도 선택기는 다양한 형식 중 하나로 시작된 다른 프로그램도 표시합니다
인수를 검사합니다
이를 통해 Electron 또는 VS Code의 도우미 프로세스에 연결할 수 있습니다
“연결” 구성 설정
이 옵션은 더 많은 작업이 필요하지만 이전 두 옵션과 달리 다양한 디버그 구성 옵션을 명시적으로 구성할 수 있습니다
가장 간단한 “연결” 구성은 다음과 같습니다
{ “이름”: “프로세스에 연결”, “유형”: “노드”, “요청”: “연결”, “포트”: 9229 }
포트 9229는 –inspect 및 –inspect-brk 옵션의 기본 디버그 포트입니다
다른 포트(예: 12345 )를 사용하려면 –inspect=12345 및 –inspect-brk=12345와 같은 옵션에 추가하고 시작 구성의 포트 속성을 일치하도록 변경합니다
연결하려는 경우 디버그 모드에서 시작되지 않은 Node.js 프로세스에 대해 Node.js 프로세스의 프로세스 ID를 문자열로 지정하여 이를 수행할 수 있습니다
{ “이름”: “프로세스에 연결”, “유형”: “노드”, “요청”: “연결”, “프로세스Id”: “53426” }
프로세스 ID를 반복적으로 찾고 시작 구성에 입력하는 것은 약간 힘들기 때문에 노드 디버그는 프로세스 선택기를 여는 명령 변수 PickProcess를 지원합니다(위에서)
PickProcess 변수를 사용하면 시작 구성이 다음과 같이 표시됩니다
{ “이름”: “프로세스에 연결”, “유형”: “노드”, “요청”: “연결”, “프로세스Id”: “${command:PickProcess}” }
디버깅을 중지합니다
디버그: 중지 작업(디버그 도구 모음 또는 명령 팔레트를 통해 사용 가능)을 사용하면 디버그 세션이 중지됩니다
디버그 세션이 “연결” 모드에서 시작된 경우(디버그 도구 모음의 빨간색 종료 버튼에 중첩된 “플러그 “), 중지를 누르면 디버기에서 Node.js 디버거의 연결이 끊긴 다음 계속 실행됩니다
디버그 세션이 “실행” 모드에 있는 경우 중지를 누르면 다음이 수행됩니다
처음으로 중지를 누르면 디버기가 SIGINT 신호를 보내 정상적으로 종료하도록 요청됩니다
디버기는 이 신호를 가로채서 필요에 따라 무엇이든 정리한 다음 종료할 수 있습니다
해당 종료 코드에 중단점(또는 문제)이 없으면 디버기와 디버그 세션이 종료됩니다
그러나 디버거가 종료 코드의 중단점에 도달하거나 디버기가 자체적으로 제대로 종료되지 않으면 디버그 세션이 종료되지 않습니다
이 경우 중지를 다시 누르면 디버기와 해당 자식 프로세스( SIGKILL )가 강제 종료됩니다
따라서 빨간색 중지 버튼을 눌러도 디버그 세션이 종료되지 않는 경우 버튼을 다시 눌러 강제 종료합니다
디버기의.
Windows 운영 체제에서 중지를 누르면 항상 디버기와 그 자식 프로세스가 강제 종료됩니다
소스 맵
VS Code의 JavaScript 디버거는 변환된 언어(예: TypeScript 또는 축소/불편화된 JavaScript)의 디버깅을 돕는 소스 맵을 지원합니다
소스 맵을 사용하면 원본 소스에서 한 단계씩 진행하거나 중단점을 설정할 수 있습니다
원본 소스에 대한 소스 맵이 없거나 소스 맵이 손상되어 소스와 생성된 JavaScript 간에 성공적으로 매핑할 수 없는 경우 중단점이 확인되지 않은 것으로 표시됩니다(회색 속이 빈 원).
소스 맵 기능은 기본값이 true 인 sourceMaps 속성에 의해 제어됩니다
이것은 디버거가 항상 소스 맵을 사용하려고 시도하고(찾을 수 있는 경우) 결과적으로 프로그램 속성을 사용하여 소스 파일(예: app.ts)을 지정할 수도 있음을 의미합니다
어떤 이유로 소스 맵을 비활성화해야 하는 경우 sourceMaps 속성을 false.
도구 구성으로 설정할 수 있습니다
소스 맵이 항상 자동으로 생성되는 것은 아니므로 이를 생성하도록 트랜스파일러를 구성해야 합니다
예를 들어:
타입스크립트
TypeScript의 경우 –sourceMap을 tsc에 전달하거나 tsconfig.json 파일에 “sourceMap”: true를 추가하여 소스맵을 활성화할 수 있습니다
tsc –sourceMap –outDir bin app.ts
바벨
Babel의 경우 sourceMaps 옵션을 true 로 설정하거나 코드를 컴파일할 때 –source-maps 옵션을 전달하고 싶을 것입니다
npx babel script.js –out-file script-compiled.js –source-maps
웹팩
Webpack에는 다양한 소스 맵 옵션이 있습니다
최상의 결과 충실도를 위해 webpack.config.js에서 devtool: “source-map” 속성을 설정하는 것이 좋습니다
하지만 다른 설정으로 실험하면 빌드 속도가 느려질 수 있습니다
또한 webpack에 추가 컴파일 단계가 있는 경우 , TypeScript 로더를 사용하는 것과 같이 이러한 단계가 소스 맵을 생성하도록 설정되어 있는지도 확인해야 합니다
그렇지 않으면 웹팩이 생성하는 소스맵이 실제 소스 대신 로더에서 컴파일된 코드로 다시 매핑됩니다
소스 맵 검색
기본적으로 VS Code는 node_modules를 제외한 전체 작업 공간에서 소스 맵을 검색합니다
대규모 작업 공간에서는 이 검색이 느릴 수 있습니다
launch.json 에서 outFiles 속성을 설정하여 VS Code가 소스 맵을 검색할 위치를 구성할 수 있습니다
예를 들어, 이 구성은 bin 폴더에 있는. js 파일의 소스맵만 검색합니다
{ “version” : “0.2.0” , “configurations” : [ { “name” : “TypeScript 시작” , “type” : “node” , “request” : “launch” , “program” : “app.ts ” , “outFiles” : [ “${workspaceFolder}/bin/**/*.js” ] } ] }
outFiles는 소스 맵 파일이 아니라 JavaScript 파일과 일치해야 합니다(.js 대신. map으로 끝날 수 있음).
소스 맵 해상도
기본적으로 outFiles의 소스 맵만 해결됩니다
이 동작은 종속성이 설정한 중단점을 방해하지 않도록 하는 데 사용됩니다
예를 들어, src/index.ts 파일이 있고 종속성에 webpack:///./src/index.ts 를 참조하는 소스 맵이 있는 경우 소스 파일로 잘못 해석되어 놀라운 결과를 초래할 수 있습니다
resolveSourceMapLocations 옵션을 설정하여 이 동작을 구성할 수 있습니다
null 로 설정하면 모든 소스 맵이 확인됩니다
예를 들어, 이 구성은 추가로 node_modules/some-dependency의 소스 맵이 해결되도록 허용합니다
“resolveSourceMapLocations” : [ “out/**/*.js” , “node_modules/some-dependency/**/*.js” , ]
스마트 스테핑
시작 구성에서 smartStep 속성을 true로 설정하면 VS Code가 디버거에서 코드를 단계별로 실행할 때 ‘흥미로운 코드’를 자동으로 건너뜁니다
‘흥미로운 코드’는 트랜스파일 과정에서 생성되지만 소스 맵에 포함되지 않아 원래 소스로 다시 매핑되지 않는 코드입니다
이 코드는 디버거에서 소스 코드를 단계별로 실행할 때 방해가 됩니다
디버거가 원래 소스 코드와 사용자가 관심이 없는 생성된 코드 사이를 전환하게 하기 때문입니다
smartStep은 소스 맵이 적용되지 않는 코드를 다음 단계에 도달할 때까지 자동으로 단계별로 실행합니다
소스 맵으로 다시 덮인 위치.
스마트 스테핑은 컴파일러가 소스 맵에서 다루지 않는 도우미 코드를 주입하는 TypeScript의 async/await 다운컴파일과 같은 경우에 특히 유용합니다
smartStep 기능은 JavaScript에만 적용됩니다
소스에서 생성된 코드이므로 소스 맵이 있습니다
소스가 없는 JavaScript의 경우 스마트 스테핑 옵션이 적용되지 않습니다
JavaScript 소스 맵 팁
소스 맵으로 디버깅할 때 일반적인 문제는 중단점을 설정하고 회색으로 변한다는 것입니다
커서를 그 위로 가져가면 “생성된 코드를 찾을 수 없기 때문에 중단점이 무시되었습니다(소스 맵 문제?)” 메시지가 표시됩니다
지금 무엇을? 이로 인해 발생할 수 있는 다양한 문제가 있습니다
먼저 Node 디버그 어댑터가 소스 맵을 처리하는 방법에 대한 간략한 설명입니다
app.ts 에서 중단점을 설정하면 디버그 어댑터는 TypeScript 파일의 트랜스파일된 버전인 app.js 경로를 파악해야 합니다
Node.js에서 실제로 실행 중인 것 그러나. ts 파일에서 시작하여 이것을 알아내는 직접적인 방법은 없습니다
대신 디버그 어댑터는 launch.json의 outFiles 속성을 사용하여 변환된 모든. js 파일을 찾고 관련. ts 파일의 위치가 포함된 소스 맵에 대해 구문 분석합니다
app.ts를 빌드할 때 소스 맵이 활성화된 TypeScript의 파일을 생성하면 app.js.map 파일을 생성하거나 app.js 파일 하단의 주석에 base64로 인코딩된 문자열로 인라인된 소스 맵을 생성합니다
이 맵과 연결된. ts 파일을 찾기 위해 디버그 어댑터는 소스 맵의 두 가지 속성(sources 및 sourceRoot )을 확인합니다
sourceRoot는 선택 사항입니다
있는 경우 경로 배열인 소스의 각 경로 앞에 추가됩니다
결과는. ts 파일에 대한 절대 또는 상대 경로의 배열입니다
상대 경로는 소스 맵을 기준으로 확인됩니다
마지막으로 디버그 어댑터는. ts 파일의 결과 목록에서 app.ts의 전체 경로를 검색합니다
일치하는 항목이 있으면 app.ts를 app.js에 매핑할 때 사용할 소스 맵 파일을 찾은 것입니다
일치하는 항목이 없으면 중단점을 바인딩할 수 없으며 회색으로 바뀝니다
중단점이 회색으로 변할 때 시도할 몇 가지 사항은 다음과 같습니다
디버깅하는 동안 디버그: 중단점 문제 진단 명령을 실행합니다
이 명령은 명령 팔레트( ⇧⌘P (Windows, Linux Ctrl+Shift+P )).
명령에서 문제를 해결하는 데 도움이 되는 힌트를 제공할 수 있는 도구를 불러옵니다
이 명령은 명령 팔레트( )에서 문제를 해결하는 데 도움이 되는 힌트를 제공할 수 있는 도구를 불러옵니다
소스 맵이 활성화된 상태에서 빌드했습니까?. js.map 파일,. js 파일.
파일에 인라인 소스 맵 또는 파일에 인라인 소스 맵이 있는지 확인하십시오
소스 맵의 sourceRoot 및 소스 속성이 올바른가요?. ts 파일에 대한 올바른 경로를 얻기 위해 이들을 결합할 수 있습니까? 소스 맵의 속성이 정확합니까? 파일에 대한 올바른 경로를 얻기 위해 이들을 결합할 수 있습니까? 대소문자가 잘못된 VS Code에서 폴더를 열었습니까? 코드 FOO와 같은 명령줄에서 폴더 foo/를 열 수 있으며 이 경우 소스 맵이 올바르게 해결되지 않을 수 있습니다
이 경우 소스 맵이 올바르게 해결되지 않을 수 있습니다
Stack Overflow에서 특정 설정에 대한 도움말을 검색하거나 GitHub에 문제를 제출해 보세요
디버거 문을 추가해 보세요
거기에. ts 파일로 침입하지만 해당 지점의 중단점이 바인딩되지 않으면 GitHub 문제에 포함할 수 있는 유용한 정보입니다
원격 디버깅
참고: VS Code에는 이제 범용 원격 개발 기능이 있습니다
원격 개발 확장을 사용하여 원격 시나리오 및 컨테이너에서 Node.js 개발은 로컬 설정에서 Node.js 개발과 다르지 않습니다
이것은 Node.js 프로그램을 원격 디버그하는 데 권장되는 방법입니다
자세한 내용은 시작하기 섹션 및 원격 자습서를 확인하세요
원격 개발 확장을 사용하여 Node.js 프로그램을 디버그할 수 없는 경우 아래에서 원격 Node.js 프로그램을 디버그하는 방법에 대한 안내입니다
VS Code의 로컬 인스턴스.
Node.js 디버거는 다른 시스템이나 컨테이너에서 실행 중인 프로세스에 연결하는 원격 디버깅을 지원합니다
주소 속성을 통해 원격 호스트를 지정합니다
예를 들어:
{ “type” : “node” , “request” : “attach” , “name” : “Attach to remote” , “address” : “192.168.148.2” , // <- 여기 원격 주소 "port" : 9229 }
기본적으로 VS Code는 디버깅된 소스를 원격 Node.js 폴더에서 로컬 VS Code로 스트리밍하고 읽기 전용 편집기에 표시합니다
이 코드를 단계별로 실행할 수 있지만 수정할 수는 없습니다
VS Code가 대신 작업 영역에서 편집 가능한 소스를 열도록 하려면 원격 위치와 로컬 위치 간의 매핑을 설정할 수 있습니다
localRoot 및 remoteRoot 특성은 로컬 VS Code 프로젝트와 (원격) Node.js 폴더 간의 경로를 매핑하는 데 사용할 수 있습니다
이는 동일한 시스템 또는 다른 운영 체제에서 로컬로 작동합니다
코드 경로를 원격 Node.js 폴더에서 로컬 VS 코드 경로로 변환해야 할 때마다 remoteRoot 경로는 경로에서 제거되고 localRoot 로 대체됩니다
역변환의 경우 localRoot 경로는 remoteRoot.
{ “type” : “node” , “request” : “attach” , “name” : “Attach to remote” , “address” : “TCP/IP”로 대체됩니다
디버깅할 프로세스 주소” , “포트” : 9229 , “localRoot” : “${workspaceFolder}” , “remoteRoot” : “C: \\ Users \\ username \\ project \\ server” }
로드된 스크립트에 액세스합니다
작업 공간의 일부가 아닌 스크립트에 중단점을 설정해야 하므로 일반 VS Code 파일 탐색을 통해 쉽게 찾고 열 수 없는 경우 실행 보기의 LOADED SCRIPTS 보기를 통해 로드된 스크립트에 액세스할 수 있습니다
LOADED SCRIPTS 보기를 사용하면 이름을 입력하여 스크립트를 빠르게 선택하거나 유형에 필터 사용이 설정된 경우 목록을 필터링할 수 있습니다
스크립트는 중단점을 설정할 수 있는 읽기 전용 편집기로 로드됩니다
이러한 중단점은 디버그 세션에서 기억되지만 디버그 세션이 실행되는 동안에만 스크립트 내용에 액세스할 수 있습니다
소스가 편집되면 디버그 세션을 자동으로 다시 시작합니다
시작 구성의 다시 시작 속성은 디버그 세션이 종료된 후 Node.js 디버거가 자동으로 다시 시작되는지 여부를 제어합니다
이 기능은 nodemon을 사용하여 파일 변경 시 Node.js를 다시 시작하는 경우에 유용합니다
시작 구성 속성 restart를 true로 설정하면 Node.js가 종료된 후 노드 디버거가 자동으로 Node.js에 다시 연결을 시도합니다
명령줄에서 다음과 같이 nodemon을 통해 server.js 프로그램을 시작한 경우: nodemon –inspect server.js
다음 시작 구성을 사용하여 VS Code 디버거를 연결할 수 있습니다
{ “이름”: “노드에 연결” , “유형”: “노드” , “요청”: “연결” , “다시 시작”: true , “포트”: 9229 }
또는 실행 구성으로 직접 nodemon을 통해 server.js 프로그램을 시작하고 VS Code 디버거를 연결할 수 있습니다
{ “name” : “nodemon을 통해 server.js 실행” , “type” : “node” , “request” : “launch” , “runtimeExecutable” : “nodemon” , “program” : “${workspaceFolder}/server
js”, “console”: “integratedTerminal”, “internalConsoleOptions”: “neverOpen” }
팁: 중지 버튼을 누르면 디버그 세션이 중지되고 Node.js와의 연결이 끊어지지만 nodemon(및 Node.js)은 계속 실행됩니다
nodemon을 중지하려면 명령줄에서 종료해야 합니다(위에 표시된 것과 같이 통합 터미널을 사용하면 쉽게 가능)
팁: 구문 오류의 경우 nodemon은 Node.js를 시작할 때까지 성공적으로 시작할 수 없습니다
오류가 수정되었습니다
이 경우 VS Code는 Node.js에 연결을 계속 시도하지만 결국(10초 후) 포기합니다
이를 방지하려면 더 큰 값(밀리초 단위)으로 시간 초과 속성을 추가하여 시간 초과를 늘릴 수 있습니다
프레임을 다시 시작합니다
노드 디버거는 스택 프레임에서 실행 다시 시작을 지원합니다
이것은 소스 코드에서 문제를 발견하고 수정된 입력 값으로 코드의 작은 부분을 다시 실행하려는 상황에서 유용할 수 있습니다
전체 디버그 세션을 중지했다가 다시 시작하는 데 시간이 많이 걸릴 수 있습니다
프레임 다시 시작 작업을 사용하면 값 설정 작업으로 변수를 변경한 후 현재 기능을 다시 입력할 수 있습니다
Restart Frame은 함수 외부의 상태로 돌연변이를 롤백하지 않으므로 항상 예상대로 작동하지 않을 수 있습니다
중단점
조건부 중단점
조건부 중단점은 표현식이 올바른 값을 반환할 때만 일시 중지되는 중단점입니다
줄 번호 옆의 여백을 마우스 오른쪽 버튼으로 클릭하고 “조건부 중단점”:을 선택하여 만들 수 있습니다
로그 지점
코드가 일시 중지하지 않고 특정 위치에 도달할 때 메시지 또는 값을 기록하려는 것입니다
로그 포인트를 사용하여 이 작업을 수행할 수 있습니다
로그 지점은 일시 중지되지 않고 적중 시 디버그 콘솔에 메시지를 기록합니다
JavaScript 디버거에서 중괄호를 사용하여 현재 값과 같이 메시지에 표현식을 삽입할 수 있습니다
{myVariable.property}.
행 번호 옆의 여백을 마우스 오른쪽 버튼으로 클릭하고 “Logpoint”를 선택하여 작성할 수 있습니다
예를 들어, 이것은 location is /usr/local :과 같은 것을 기록할 수 있습니다
적중 횟수 중단점
‘적중 횟수 조건’은 실행을 ‘중단’하기 전에 중단점이 적중되어야 하는 횟수를 제어합니다
행 번호 옆의 여백을 마우스 오른쪽 버튼으로 클릭하고 “조건부 중단점”을 선택한 다음 “적중 횟수”로 전환하여 적중 수 중단점을 배치할 수 있습니다
Node.js 디버거에서 지원하는 적중 수 구문은 정수 또는 또는 연산자 중 하나 < , <= , == , > , >= , % 다음에 정수가 옵니다
몇 가지 예:
> 10 히트 후 항상 10 브레이크
항상 10번의 히트 이후에 중단 <3 처음 두 번의 히트에서만 중단됩니다
>=10과 동일하게 처음 두 번의 히트만 10번 중단합니다
다른 모든 적중 시 %2 중단과 동일합니다
중단점 유효성 검사
성능상의 이유로 Node.js는 처음 액세스할 때 JavaScript 파일 내의 함수를 느리게 구문 분석합니다
결과적으로 중단점은 Node.js에서 확인(파싱)되지 않은 소스 코드 영역에서 작동하지 않습니다
이 동작은 디버깅에 이상적이지 않기 때문에 VS Code는 –nolazy 옵션을 Node.js에 자동으로 전달합니다
이렇게 하면 지연된 구문 분석을 방지하고 코드를 실행하기 전에 중단점을 검증할 수 있습니다(더 이상 “점프”하지 않음)
–nolazy 옵션이 디버그 대상의 시작 시간을 크게 늘릴 수 있으므로 쉽게 선택할 수 있습니다
–lazy를 runtimeArgs 속성으로 전달하여 out.
그렇게 할 때 일부 중단점은 요청된 줄에 “고정”되지 않고 대신 이미 구문 분석된 코드에서 다음 가능한 줄로 “점프”합니다
혼동을 피하기 위해 VS Code는 항상 Node.js가 중단점이라고 생각하는 위치에 중단점을 표시합니다
BREAKPOINTS 섹션에서 이러한 중단점은 요청된 줄 번호와 실제 줄 번호 사이에 화살표로 표시됩니다
이 중단점 유효성 검사는 세션이 시작되고 중단점이 Node.js에 등록될 때 또는 세션이 이미 실행 중이고 새 중단점이 설정될 때 발생합니다
이 경우 중단점이 다른 위치로 “점프”될 수 있습니다
Node.js가 모든 코드를 구문 분석한 후(예: 실행하여) 중단점은 BREAKPOINTS 섹션 헤더의 재적용 버튼을 사용하여 요청된 위치에 쉽게 재적용될 수 있습니다
이렇게 하면 중단점이 요청된 위치로 “다시 점프”해야 합니다
흥미롭지 않은 코드 건너뛰기
VS Code Node.js 디버깅에는 단계별로 실행하고 싶지 않은 소스 코드를 방지하는 기능이 있습니다(‘내 코드만’이라고도 함)
이 기능은 시작 구성에서 skipFiles 속성으로 활성화할 수 있습니다
skipFiles는 건너뛸 스크립트 경로에 대한 glob 패턴의 배열입니다
예를 들어 다음을 사용합니다
“skipFiles” : [ “${workspaceFolder}/node_modules/**/*.js” , “${workspaceFolder}/lib/**/*.js” ]
프로젝트의 node_modules 및 lib 폴더에 있는 모든 코드는 건너뜁니다
skipFiles는 console.log 및 유사한 메서드를 호출할 때 표시되는 위치에도 적용됩니다
스택에서 건너뛰지 않은 첫 번째 위치는 디버그 콘솔의 출력 옆에 표시됩니다
Node.js의 내장 코어 모듈을 참조할 수 있습니다
glob 패턴에서 ‘마법의 이름’
다음 예에서는 모든 내부 모듈을 건너뜁니다
“skipFiles” : [ “ 정확한 ‘건너뛰기’ 규칙은 다음과 같습니다 건너뛴 파일에 들어가면 거기에서 멈추지 않고 건너뛴 파일에 없는 다음 실행 줄에서 멈춥니다. throw된 예외에서 중단하도록 옵션을 설정한 경우 건너뛰지 않은 파일로 버블링되지 않는 한 건너뛴 파일에서 throw된 예외를 중단하지 않습니다 건너뛴 파일에 중단점을 설정하면 다음에서 중지됩니다 해당 중단점을 선택하면 해당 중단점에서 벗어날 때까지 단계를 수행할 수 있으며, 이 시점에서 정상적인 건너뛰기 동작이 재개됩니다 건너뛰기 파일 내부의 콘솔 메시지 위치는 건너뛰지 않은 첫 번째 위치로 표시됩니다 call stack. 건너뛴 소스는 CALL STACK 보기에서 ‘흐리게’ 스타일로 표시됩니다 흐리게 표시된 항목 위로 마우스를 가져가면 스택 프레임이 흐리게 표시되는 이유가 설명됩니다. 호출 스택의 컨텍스트 메뉴 항목인 Toggle skipping this file을 사용하면 실행 구성에 추가하지 않고도 런타임에 파일을 쉽게 건너뛸 수 있습니다 이 옵션은 현재 디버깅 세션에 대해서만 지속됩니다 또한 이를 사용하여 시작 구성의 skipFiles 옵션으로 건너뛴 파일 건너뛰기를 중지할 수 있습니다 참고: 레거시 프로토콜 디버거는 음수 glob 패턴을 지원하지만 양수 패턴을 따라야 합니다 양수 패턴은 건너뛴 집합에 추가됩니다 파일, 음수 패턴은 해당 세트에서 빼기. 다음(레거시 프로토콜 전용) 예제에서는 ‘수학’ 모듈을 제외하고 모두 건너뜁니다 “skipFiles” : [ “${workspaceFolder}/node_modules/**/*.js” , “!${workspaceFolder}/node_modules/math/**/*.js” ]
참고: V8 디버거 프로토콜이 기본적으로 지원하지 않기 때문에 레거시 프로토콜 디버거는 skipFiles 기능을 에뮬레이트해야 합니다 이로 인해 스테핑 성능이 느려질 수 있습니다 지원되는 노드 유사 런타임 현재 VS Code JavaScript 디버거는 8.x 이상의 노드 버전, 최신 Chrome 버전 및 최신 Edge 버전(pwa-msedge 시작 유형을 통해)을 지원합니다. 다음 단계 Node.js 섹션을 아직 읽지 않았다면 다음을 살펴보세요 Node.js – 샘플 애플리케이션이 있는 종단 간 노드 시나리오입니다 Node.js 디버깅의 기본에 대한 자습서를 보려면 다음 비디오를 확인하십시오 소개 비디오 – 디버깅 – 디버깅의 기본을 보여주는 소개 비디오 Node.js 디버깅 시작하기 – 실행 중인 Node.js 프로세스에 연결하는 방법 배우기. VS Code의 작업 실행 지원에 대해 알아보려면 다음으로 이동하십시오 작업 – Gulp, Grunt 및 Jake로 작업 실행 오류 및 경고 표시 자신의 디버거 확장을 작성하려면 다음을 방문하십시오 디버거 확장 – 모의 샘플에서 시작하는 VS Code 디버그 확장을 만드는 단계입니다 일반적인 질문 예, npm link 와 같이 프로젝트 내부의 폴더에 대한 심볼릭 링크를 만든 경우 심볼릭 링크된 경로를 유지하도록 Node.js 런타임에 지시하여 심볼릭 링크된 소스를 디버그할 수 있습니다 실행 구성 runtimeArgs 속성에서 node.exe –preserve-symlinks 스위치를 사용합니다 문자열 배열인 runtimeArgs는 기본적으로 node.exe. { “runtimeArgs” : [ “–preserve-symlinks” ] }인 디버깅 세션 런타임 실행 파일에 전달됩니다 메인 스크립트가 심볼릭 링크 경로 안에 있다면 “–preserve-symlinks-main” 옵션도 추가해야 합니다 이 옵션은 Node 10+에서만 사용할 수 있습니다 ECMAScript 모듈을 어떻게 디버그합니까? ECMAScript 모듈을 사용하기 위해 esm을 사용하거나 –experimental-modules를 Node.js에 전달하는 경우 launch.json의 runtimeArgs 속성을 통해 이러한 옵션을 전달할 수 있습니다. This video explains how you can make your development process more efficient by automatically restarting your web server after ever file save. The NPM module nodemon is how we accomplish this. Updating Updating 스레드 끝 babel nodemonUsing nodemon with NodeJS Servers Update
주제에 대한 새로운 업데이트 babel nodemon
Sample package.json Code GIST: https://gist.github.com/prof3ssorSt3v3/55be499dd72aef35a19deaf8c03457ed
Nodemon documentation: https://www.npmjs.com/package/nodemonbabel nodemon주제 안의 관련 사진
주제에 대한 추가 정보 보기 babel nodemon
사용자가 주제에 대해 검색한 키워드 babel nodemon