ฉันจะเรียกใช้ nodemon จากภายใน WebStorm ได้อย่างไร


85

ฉันต้องการใช้nodemonจากภายใน WebStorm IDE (เวอร์ชัน 7) Nodemon เฝ้าดูไฟล์อย่างน้อยหนึ่งไฟล์ในโฟลเดอร์ต้นทางของฉันและรีสตาร์ทกระบวนการโหนด (ในกรณีนี้คือเซิร์ฟเวอร์ Express) เมื่อไฟล์ต้นทางไฟล์ใดไฟล์หนึ่งเปลี่ยนไป

ฉันจะกำหนดค่า WebStorm ให้ใช้nodemonในRun Configuration ได้อย่างไรเพื่อให้กระบวนการโหนดเริ่มต้นใหม่โดยอัตโนมัติ

หากไม่มีnodemonฉันใช้การกำหนดค่าต่อไปนี้ใน WebStorm แต่ต้องเริ่มกระบวนการโหนดใหม่ทุกครั้งที่ฉันเปลี่ยนแปลงบางสิ่งในไฟล์ต้นฉบับ:

  • ล่ามโหนด: /usr/local/bin/node
  • ไดเร็กทอรีการทำงาน: /Users/foo/test
  • ไฟล์ JavaScript: server.js

ส่งผลให้ Run Configuration ที่รันnode server.jsในไดเร็กทอรีที่ระบุ

จากบรรทัดคำสั่งฉันสามารถใช้คำสั่งต่อไปนี้เพื่อใช้nodemonเพื่อเฝ้าดูการเปลี่ยนแปลงของไฟล์: nodemon server.jsในไดเร็กทอรีโปรเจ็กต์

ฉันจะต้องเปลี่ยนการกำหนดค่า WebStorm เพื่อให้ใช้nodemon ได้อย่างไร


คำถามนี้ดูเหมือนจะเป็นแนวเดียวกัน: stackoverflow.com/questions/11175041/…
nwinkler

ดูคำตอบของฉันstackoverflow.com/a/52463378/7350853ใช้ Webstorm เวอร์ชันล่าสุด
iwaduarte

คำตอบ:


146

ดูเหมือนว่าวิธีแก้ปัญหา--execไม่จำเป็นอีกต่อไปอย่างน้อยเมื่อใช้nodemonเวอร์ชันใหม่ล่าสุดและ Webstorm 7 หรือ 8

สิ่งที่คุณต้องทำคือระบุพา ธ ของคุณไปยังnodemonโดยรับพา ธ ด้วยการรันwhich nodemonในคอนโซลของคุณ (เช่น/usr/local/bin/nodemon) ภายใต้ "พารามิเตอร์โหนด":

Webstorm กับ nodemon

@ เบลาคลาร์กขอบคุณสำหรับการยืนยัน


เพิ่งลองใช้ - ตอนนี้ใช้งานได้ดีอย่างสมบูรณ์ ขอขอบคุณที่ให้คำตอบล่าสุด!
nwinkler

8
@bernhardw เว็บสตอร์มไม่หยุดพักเมื่อเริ่มการดีบักเกอร์ด้วยการกำหนดค่าเหล่านี้ คิดว่าทำไม?
Nik Sumeiko

4
จัดการเพื่อให้ nodemon และเบรกพอยต์ทำงานโดยทำตามคำแนะนำเหล่านี้: vcfvct.wordpress.com/2015/02/13/…โปรดทราบว่าฉันใช้ --debug-brk แทน --debug
n00b

1
เพื่อให้การดีบักทำงานได้ฉันต้องใช้ Live Edit plugging สำหรับ IntelliJ แทน nodemon
engin

1
คำตอบที่ดี ! ขอบคุณ
Julien

35

นี่คือโซลูชันของ Windows

คุณสามารถใช้ nodemon.cmd แทนโหนดได้โดยตรงเช่น:

Node interpreter : C:\MyPath\To\nodemon.cmd
Node parameters : /*Empty for me*/
Node WorkingDirectoy : C:\Users\MyUserName\Desktop\DirectoryContainingMyIndex.js
JavaScriptFile : app\index.js /*or just index.js depending on your config*/

แล้ว:

ใส่คำอธิบายภาพที่นี่

หวังว่ามันจะช่วยคุณได้


ฉันคิดว่านี่เป็นคำตอบที่ตรงไปตรงมาที่สุด
Paul Wade

6
สวัสดีลองสิ่งนี้แล้วและเมื่อฉันเปลี่ยนไฟล์มันจะถามฉัน (ในคอนโซล Web Storm) "ยุติงานแบตช์ (Y / N)?" ฉันยังเห็นว่าคำสั่งที่กำลังดำเนินการคือ: "C: \ Program Files (x86) \ JetBrains \ WebStorm 8.0.4 \ bin \ runnerw.exe" C: \ Users \ xyz \ AppData \ Roaming \ npm \ nodemon.cmd - -debug-brk = 27344 --nolazy -q app.js. ฉันขาดอะไรไปหรือเปล่า?
Tomer Cagan

1
สำหรับปัญหา "ยุติงานชุดงาน" เพียงเพิ่ม "<nul" (ไม่ใส่เครื่องหมายคำพูด) ลงในอินพุต "พารามิเตอร์แอปพลิเคชัน" (พบคำตอบที่นี่: superuser.com/a/498798 )
Tobias Weichart

เหตุใดจึงมีการโหวตเพิ่มขึ้น มันจะใช้ไม่ได้เมื่อ nodemon รีสตาร์ทมันจะไม่เพิ่ม "<nul" ตั้งแต่เริ่มต้นดังนั้นคุณจะยังคงได้รับ "Terminate batch job (Y / N)?"
KVM

ตำแหน่งใน windows คือ C: \ Users \ <user> \ AppData \ Roaming \ npm \ nodemon.cmd
xor

18

ในการติดตั้งnodemonให้ใช้สิ่งต่อไปนี้ (หากจำเป็นให้ใช้sudoเพื่อรันการติดตั้งด้วยสิทธิ์ root:

npm install -g nodemon

สิ่งนี้จะติดตั้งnodemonทั่วโลกบนเครื่องของคุณ

จากนั้นใน WebStorm Run Configurationให้เพิ่มสิ่งต่อไปนี้โดยปล่อยให้ทุกอย่างไม่เปลี่ยนแปลง:

  • พารามิเตอร์โหนด: /usr/local/bin/nodemon --exec /usr/local/bin/node

นี้จะสั่งให้โหนดล่ามเพื่อรันสคริปต์โดยใช้บรรทัดคำสั่งต่อไปนี้:nodemonnode /usr/local/bin/nodemon --exec /usr/local/bin/node server.js

--execส่วนหนึ่งเป็นสิ่งที่สำคัญเช่นการดำเนินการจะล้มเหลวด้วยข้อผิดพลาดต่อไปนี้:

/usr/local/bin/node /usr/local/bin/nodemon server.js
4 Oct 13:56:50 - [nodemon] v0.7.10
4 Oct 13:56:50 - [nodemon] to restart at any time, enter `rs`
4 Oct 13:56:50 - [nodemon] watching: /Users/foo/test
execvp(): No such file or directory
4 Oct 13:56:50 - [nodemon] starting `node server.js`
4 Oct 13:56:50 - [nodemon] exception in nodemon killing node
Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)

ข้อผิดพลาดน่าจะเกิดจาก WebStorm ไม่เห็นnodeไฟล์ปฏิบัติการบนเส้นทางของมัน

การแก้ไขสำหรับสิ่งนี้คือการระบุตำแหน่งให้กับnodeไฟล์ปฏิบัติการโดยใช้--exec /usr/local/bin/nodeพารามิเตอร์

ใช้การตั้งค่าเหล่านี้nodemonทำงานได้ดีเมื่อเรียกใช้จาก WebStorm เรียกใช้การกำหนดค่า

เคล็ดลับเดียวกันอาจจะต้องถูกนำมาใช้กับบางส่วนของเครื่องมือที่คล้ายกับnodemonเช่นโหนดผู้บังคับบัญชา


1
ใช้งานได้กับ Run Configuration แต่ใช้กับ Debug ไม่ได้ มีความคิดที่จะแก้ปัญหาด้วย nodemon ในเว็บสตอร์มหรือไม่
yves amsellem

3
อย่างน้อยด้วย Webstorm 8 EAP และ nodemon 1.0.15 คุณไม่ต้องระบุ--execอีกต่อไป สิ่งที่ฉันต้องทำคือใช้/usr/local/bin/nodemonใน "พารามิเตอร์โหนด"
bernhardw

@bernhardw: ฉันยืนยันได้เหมือนเดิม
Bala Clark

18

ฉันใช้ Windows และสำหรับฉันไม่ได้ทำงานกับ nodemon (ไม่รู้ว่าทำไม) แต่มีคนจาก Jetbrains แนะนำให้ลองกับหัวหน้างาน:

  1. ฉันติดตั้งหัวหน้างาน: npm install supervisor -g

  2. จากนั้นค้นหาตำแหน่งที่supervisorติดตั้งสำหรับฉันอยู่ใน: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error

  3. ฉันกลับไปที่ Intellij: แก้ไขการกำหนดค่า -> พารามิเตอร์โหนด -> และเพิ่ม: C: \ Users \ AlinC \ AppData \ Roaming \ npm \ node_modules \ Supervisor \ lib \ cli-wrapper.js - ไม่มีข้อผิดพลาดในการรีสตาร์ท

แก้ไขการกำหนดค่า

พารามิเตอร์โหนด


1
หากต้องการหยุดเบรกพอยต์คุณควรเพิ่มสิ่งนี้: --debug-brkและสตริงที่สมบูรณ์คือC:\Users\<username>\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js no-restart-on error --debug-brkCheck จาก jetbrains jetbrains.com/phpstorm/webhelp/…ที่อยู่
uzay95

1
ไม่สามารถรับ nodemon ที่ทำงานบน Windows 8 ด้วย Webstorm 9 สิ่งนี้ทำงานได้อย่างมีเสน่ห์
Simon Trewhella

1
ใช้ได้กับฉัน (Webstorm 11 บน Windows) แต่เบรกพอยต์ไม่ทำงาน ฉันพยายามเพิ่ม--debug-brkแต่โชคไม่ดี
กระแสไฟฟ้า

เริ่ม nodemon กับ--inspectธงแล้วแนบการดีบักเกอร์กับมัน
brgs

14

สำหรับผู้ที่สนใจโซลูชันใน Windows 10 นี่คือการกำหนดค่าของฉัน มันไม่แสดงสิ่งที่ "ยุติแบทช์" และทำงานได้อย่างสมบูรณ์

ใส่คำอธิบายภาพที่นี่

คุณกด debug ONCE และคุณสามารถบันทึกไฟล์การเปลี่ยนแปลงอะไรก็ได้และเซิร์ฟเวอร์จะรีสตาร์ทในโหมดดีบัก จุดเบรกทั้งหมดทำงานได้อย่างสมบูรณ์


นี่คือคำตอบที่ใช้ได้ผลสำหรับการดีบัก ฉันตั้งค่าพารามิเตอร์โหนดเท่านั้น พารามิเตอร์โหนดเป็นข้อความ (เปลี่ยนชื่อผู้ใช้): c: \ users \ username \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js --debug = 3001
Alexey Obukhov

สิ่งนี้ไม่ได้ผลสำหรับฉัน การเพิ่มพารามิเตอร์ --debug = 3001 ทำให้ nodemon ขัดข้อง
JCF

ขอบคุณการรันขั้นพื้นฐานใช้งานได้และการแก้ปัญหาโดยไม่มีปัญหาใด ๆ นี่ควรเป็นคำตอบอันดับต้น ๆ
Georgi Peev

8

สำหรับผู้ใช้ windows ตั้งค่า:

Node Interpreter: เส้นทางของ node.exe เช่น c: \ program files \ node \ node.exe

พารามิเตอร์โหนด: C: \ Users \ YOURUSER \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js


สิ่งนี้ได้ผลสำหรับฉัน! การแก้จุดบกพร่องและจุดแตกหักทำงานได้อย่างสมบูรณ์ Node เวอร์ชัน 10.15.1 nodemon เวอร์ชัน 1.18.10 Webstorm 2018.3.5
JCF

5

คุณยังสามารถทำให้มันทำงานกับ nvm และการดีบักก็ยังใช้งานได้

ทดสอบกับ Node.js 8.1.0 และ Webstorm 2017.2

ขั้นแรกตรวจสอบให้แน่ใจว่าคุณใช้เวอร์ชันที่ถูกต้อง (ในกรณีของฉันคือ v8.1.0) และติดตั้ง nodemon ทั่วโลก -

nvm use v8.1.0
npm install -g nodemon

จากนั้นเปิดการกำหนดค่า Run / Debug และสร้างใหม่ด้วยตัวแปลโหนดที่ถูกต้อง

พารามิเตอร์โหนดควรเป็น:

MAC

/Users/[YOUR_USER]/.nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001

ลินุกซ์

/usr/local/nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001

บันทึกและแก้ไขข้อบกพร่อง respponsibally :)

การดีบัก Node.js nodemon webstorm


4

นี่คือการกำหนดค่าที่เหมาะกับฉันใน Windows 7 + WebStorm 8.0.4 ถ้าฉันใส่ nodemon.cmd เป็นตัวแปลโหนดฉันจะได้รับ "Terminate batch job (Y / N)?"

Nodemon + Webstorm บน Windows


ดูคำตอบของฉันเกี่ยวกับคำถามนี้ใน Windows ฉันคิดว่าคุณกำลังชี้ไปที่ไฟล์ nodemon.cmd ที่ไม่ถูกต้อง
Alexander Mills

3

ในกรณีที่คุณติดตั้ง nodemon เหมือนไลบรารีส่วนกลางให้ตั้งค่าในพารามิเตอร์โหนด:

C: \ Users \ $ {yourUser} \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js

nodemon ในเว็บสตอร์ม


ทำงานได้อย่างมีเสน่ห์ผ่าน nvm และ npm 14.7.0
Eugene Zalivadnyi

2

นี่เป็นสิ่งเดียวที่เหมาะกับฉัน:

  1. เพิ่มคำสั่งเรียกใช้โหนด package.json ใหม่:

ใส่คำอธิบายภาพที่นี่

  1. สร้างNPM CONFIG (ไม่ใช่การกำหนดค่าโหนด)
  2. เลือก "start-watch" เป็นคำสั่ง

ใส่คำอธิบายภาพที่นี่

สำหรับฉันสิ่งนี้ใช้ได้กับการดีบัก / เบรกพอยต์โดยไม่มีปัญหาหรือปวดหัวเพิ่มเติม


1

คำตอบเหล่านี้บางส่วนดูเหมือนจะใช้ได้กับ Mac เท่านั้น สำหรับ Windows การกำหนดค่านี้ดูเหมือนจะใช้งานได้ (ชื่อผู้ใช้ของฉันใน Windows 7 คือ denman)

ใส่คำอธิบายภาพที่นี่

main.js เป็นไฟล์จุดเริ่มต้นสำหรับแอปพลิเคชัน Express ของฉัน


0
  1. ทำการ npm ติดตั้ง nodmemon -g
  2. เปลี่ยน Path to Node เป็น nodemon.cmd เท่านั้นในกรณีของฉัน (C: \ Users \ Rohit Taneja \ AppData \ Roaming \ npm \ nodemon.cmd) คุณจะได้รับเส้นทางนี้หลังจากการติดตั้ง nodemon เสร็จสิ้น

  3. คุณไปได้ดี


0

ต่อความคิดเห็นของ @bernhardw เพราะนี่คือคำตอบสำหรับฉัน -

สิ่งที่จำเป็นทั้งหมดอยู่/usr/local/bin/nodemonภายใต้node parameters Works for run และ debug เมื่อรีสตาร์ทเมื่อมีการเปลี่ยนแปลงแต่ดีบักด้วยเบรกพอยต์ไม่ทำงาน

โบนัส: เพิ่ม -e สำหรับส่วนขยายเพิ่มเติมเช่น /usr/local/bin/nodemon -e js,html,jade

(osx 10.10.5 รูบี้ 7.1.4)

HTH


0

npm ติดตั้ง -g nodemon

1* goto run->Edit Configurations->Press'+' at left corner and choose Node.js

2* Select Node.js and Press '+' 

3* Name as Nodemon, add path in javaScript file: C:\Users\Your_User_Name\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js

4* Click Apply and Ok

5* Run the Nodemon

ใส่คำอธิบายภาพที่นี่ใส่คำอธิบายภาพที่นี่


0

สคริปต์ใน package.json: "start": "nodemon --inspect -r babel-register src",

รูปแรก: เรียกใช้ debug และมันจะเริ่มขึ้น

รูปที่สอง: เชื่อมต่อกับโหนดที่กำลังทำงานอยู่ การตั้งค่า ใส่คำอธิบายภาพที่นี่


0

นี่คือการแก้ไขข้อผิดพลาดที่ฉันได้รับ ...

หากคุณใช้ Nodeemon ของ Windows + NodeJS + ด้วย IntelliJ - เรียกใช้การกำหนดค่า

ERROR: starting inspector on failed: address already in use

เมื่อฉันใช้ nodemon เวอร์ชัน 1.19.1 ฉันได้รับข้อผิดพลาด เมื่อฉันใช้ nodemon เวอร์ชัน 1.18.11 มันใช้งานได้!

โชคดี...


0

เพียงเพิ่มสคริปต์ใหม่ที่package.jsonเรียกว่า nodemon (หรือเลือกชื่อของคุณเอง)

"scripts": {
  ...
  "nodemon": "nodemon ./bin/www"
}

จากนั้นไปที่Run / Debug Configurationและเพิ่มการกำหนดค่าnpm ชุด

  • คำสั่งเพื่อ " เรียกใช้ "
  • สคริปต์เป็น " nodemon " (ชื่อที่คุณเลือกใน package.json)

ตัวอย่าง


0

ฉันมีการพัฒนาใน mac และตามที่ OdkoPP ระบุว่าฉันทำให้มันใช้งานได้

"scripts": {
"build": "tsc",
"dev": "nodemon src/index.ts --exec ts-node"
},

รัน / ดีบักคอนฟิกูเรชัน npm: รัน / ดีบักคอนฟิกูเรชัน npm

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.