ไม่รู้จักคำสั่ง nodemon ในเทอร์มินัลสำหรับเซิร์ฟเวอร์โหนด js


90

ฉันทำ Node.js ติดตั้งเซิร์ฟเวอร์จากhttps://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens ฉันเป็นคนใหม่ใน node.js npm install nodemon --saveฉันกำลังติดตั้ง nodemon server.jsแต่เมื่อฉันกำลังทำงานเซิร์ฟเวอร์ด้วยนี้
ในเทอร์มินัลแสดง:

ไม่รู้จัก nodemon เป็นคำสั่งภายในหรือภายนอกโปรแกรมที่ใช้งานได้หรือไฟล์แบตช์

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

node server.jsคำสั่งทำงานและเริ่มต้นเซิร์ฟเวอร์ แต่nodemonคำสั่งไม่ทำงาน

ฉันตั้งค่าเซิร์ฟเวอร์โหนด js จากhttps://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokensวิดีโอ

ฉันไม่รู้ว่าทำไมมันถึงใช้งานไม่ได้ฉันลองใช้คำสั่งสำหรับติดตั้ง nodemon แล้ว

npm install -g nodemon 
npm install -g nodemon --save 
npm install --save-dev nodemon 
npm install -g nodemon@debug 

npm install -g --force nodemon

ฉันเห็นลิงค์หนึ่งที่ฉันไม่สามารถติดตั้ง nodemon ได้ทั่วโลกไม่รู้จัก "nodemon"แต่ฉันไม่รู้วิธีกำหนดเส้นทางเนื่องจากตำแหน่งโครงการของฉันในไดรฟ์ D

nodemon server.jsผมต้องการที่จะทำงาน หากใครมีความคิดโปรดแบ่งปัน ขอบคุณล่วงหน้า.

คำตอบ:


222

คุณต้องติดตั้งทั่วโลก

npm install -g nodemon
# or if using yarn
yarn global add nodemon

จากนั้นมันจะพร้อมใช้งานบนเส้นทาง (ฉันเห็นว่าตอนนี้คุณลองแล้ว แต่มันไม่ได้ผลเส้นทางของคุณอาจจะยุ่ง

หากคุณต้องการใช้เวอร์ชันที่ติดตั้งภายในเครื่องแทนที่จะติดตั้งทั่วโลกคุณสามารถสร้างสคริปต์ใน package.json ของคุณ

"scripts": {
    "serve": "nodemon server.js"
  },

แล้วใช้

npm run serve

ทางเลือกถ้าใช้เส้นด้าย

# without adding serve in package.json
yarn run nodemon server.js
# with serve script in package.json
yarn run serve

จากนั้น npm จะค้นหาในโฟลเดอร์ node_modules ในเครื่องของคุณก่อนที่จะมองหาคำสั่งในโมดูลส่วนกลางของคุณ


ไม่ทำงานอะไร สคริปต์ที่ใช้การติดตั้งภายในเครื่อง?
ndonohoe

Yaa. ฉันได้ติดตั้ง nodemon ฉันใส่สคริปต์ในไฟล์ package.json และหลังจากรัน npm รันให้บริการ หลังจากนั้นให้รัน nodemon server.js แต่ไม่ทำงาน
Martin

package.json: {"scripts": {"serve": "nodemon server.js"}, "name": "node-site", "version": "1.0.0", "description": "", " main ":" server.js "," scripts ": {" test ":" echo \ "Error: ไม่ได้ระบุการทดสอบ \" && exit 1 "}," author ":" "," license ":" ISC ", "dependencies": {"express": "^ 4.14.0", "nodemon": "^ 1.11.0"}, "devDependencies": {"gulp-nodemon": "^ 2.2.1", "nodemon": "^ 1.11.0"}}
Martin

คุณสามารถชี้แจง "ไม่ทำงาน"? มีข้อผิดพลาดหรือไม่? ไม่มีอะไรเกิดขึ้น?
ndonohoe

อาจเป็นเพราะคุณมีสคริปต์สองชุดในนั้นคุณต้องมีสคริปต์ทั้งหมดในออบเจ็กต์สคริปต์เดียว
ndonohoe

32
  1. ติดตั้ง nodemon ทั่วโลก:

    C:\>npm install -g nodemon
    
  2. รับคำนำหน้า:

    C:\>npm config get prefix
    

    คุณจะได้ผลลัพธ์ดังต่อไปนี้ในคอนโซลของคุณ:

    C:\Users\Family\.node_modules_global
    

    คัดลอก

  3. กำหนดเส้นทาง
    ไปที่การตั้งค่าระบบขั้นสูง→ตัวแปรสภาพแวดล้อม→คลิกใหม่ (ภายใต้ตัวแปรผู้ใช้) →แบบฟอร์มป๊อปอัปจะแสดง→ส่งผ่านค่าต่อไปนี้:

    variable name = path,
    variable value = Copy output from your console
    
  4. ตอนนี้เรียกใช้ Nodemon:

    C:\>nodemon .
    

งานนี้ !! นี่คือฉันกำลังมองหา ขอบคุณ
yashjain12yj

สิ่งนี้ได้ผลสำหรับฉัน จริงๆแล้วฉันมีหน้าต่างและจำเป็นต้องแก้ไขตัวแปรสภาพแวดล้อม ขอบคุณ :)
Laveena

21

ขั้นแรกเขียน npm install --save nodemon จากนั้นใน package.json เขียนสิ่งต่อไปนี้

"scripts": {
    "server": "nodemon server.js"
  },

จากนั้นเขียน

npm run server

ได้ผล! ขอบคุณมาก. เพียงแค่สอบถาม nodemon ป้องกันไม่ให้เรารีสตาร์ทไฟล์เซิร์ฟเวอร์ แต่เรายังต้องรีเฟรชเบราว์เซอร์ เบราว์เซอร์สามารถรีเฟรชได้เองเหมือนในเชิงมุมหรือไม่?
Rahul Sharma

8

ฉันประสบปัญหาเดียวกัน ฉันได้ติดตั้ง nodemon เป็น dev-dependency และเมื่อฉันพยายามเริ่มเซิร์ฟเวอร์มันให้ข้อความว่า

ไม่รู้จัก nodemon เป็นคำสั่งภายในหรือภายนอกโปรแกรมที่ใช้งานได้หรือไฟล์แบตช์

จากนั้นฉันติดตั้งทั่วโลกและพยายามเริ่มเซิร์ฟเวอร์และใช้งานได้!

npm install -g nodemon

6

จำเป็นต้องติดตั้งทั่วโลกหรือไม่? คุณจำเป็นต้องสามารถวิ่งได้nodemon server.jsหรือไม่? หากไม่เป็นเช่นนั้นคุณสามารถเรียกใช้จากไดเรกทอรีโครงการในพื้นที่ของคุณ ควรอยู่ที่นี่:

node_modules/.bin/nodemon

สิ่งนี้มีประโยชน์สำหรับฉันในการเรียกใช้ nodejs api จากเชลล์สคริปต์ ขอบคุณมาก!
Nam G VU

4

เนื่องจากคำนำหน้าโหนดไม่ได้อยู่ในตัวแปร PATH ENV โมดูลใด ๆ ที่ติดตั้งทั่วโลกจึงไม่ได้รับการยอมรับ โปรดลองทำตามนี้ เปิด cmd prompt npm config รับคำนำหน้าต่อท้ายพา ธ ผลลัพธ์ไปยังตัวแปร PATH env ตอนนี้คุณควรจะสามารถเรียกใช้ nodemon ได้จากทุกที่ ลองใช้ลิงก์นี้และปฏิบัติตามการแก้ไขสิทธิ์ npm https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory


ในลิงค์ของคุณคือคำแนะนำสำหรับ linux คุณมีอะไรสำหรับ windows หรือไม่?
Jose Rojas


4

อาจจะมาช้า แต่ดีกว่าที่จะพูดอะไร :)

หากคุณไม่ต้องการติดตั้ง nodemon globbaly ที่คุณสามารถใช้ได้npxมันจะติดตั้งแพ็กเกจในขณะทำงานและจะทำงานเป็นแพ็กเกจส่วนกลาง (โปรดทราบว่ามันพร้อมใช้งานในขณะนี้และไม่มีอยู่ทั่วโลก!)

npx nodemon server.jsดังนั้นสิ่งที่คุณต้องการคือ

  • npxสามารถใช้งานได้ทันทีตั้งแต่npm@5.2.0รุ่นขึ้นไป

3

ในการใช้ nodemon คุณต้องติดตั้งทั่วโลก

สำหรับ Windows

npm i -g nodemon

สำหรับ Mac

sudo npm i -g nodemon

npm i nodemon หากคุณไม่ต้องการที่จะติดตั้งทั่วโลกที่คุณสามารถติดตั้งได้ทั้งในประเทศในโฟลเดอร์โครงการของคุณโดยใช้คำสั่ง มันจะให้ข้อผิดพลาดบางอย่างเช่นนี้หากเรียกใช้ในเครื่อง:

nodemon: ไม่รู้จักคำว่า 'nodemon' เป็นชื่อของไฟล์
cmdlet ฟังก์ชันไฟล์สคริปต์หรือโปรแกรมที่ใช้งานได้ ตรวจสอบการสะกด
ของชื่อหรือหากรวมเส้นทางไว้ให้ตรวจสอบว่าเส้นทางนั้น
แก้ไขแล้วลองอีกครั้ง

เพื่อลบข้อผิดพลาดนี้เปิด package.json ไฟล์และเพิ่ม

"scripts": {
     "server": "nodemon server.js"
 },

และหลังจากนั้นให้เรียกใช้คำสั่ง

npm รันเซิร์ฟเวอร์

และ nodemon ของคุณจะเริ่มทำงานอย่างถูกต้อง


1
ไม่ถูกต้อง. สคริปต์ของคุณควรระบุว่า {"server": "nodemon server.js"}
joedotnot


1

เพิ่งมีปัญหาเดียวกันหลังจากสร้างโปรไฟล์ผู้ใช้ใหม่บนเครื่องพัฒนาของฉัน

ปัญหาคือฉันไม่ได้เรียกใช้คอนโซล (command prompt \ powershell ISE) ในฐานะผู้ดูแลระบบ

การทำงานในฐานะผู้ดูแลระบบช่วยแก้ปัญหานี้ให้ฉัน


1

ฉันพยายามติดตั้ง nodemon ทั่วโลก แต่ไม่ได้ผลสำหรับฉัน เมื่อใดก็ตามที่ฉันพยายามเรียกใช้มันจะแสดงข้อผิดพลาดเสมอ:

nodemon : The term 'nodemon' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is
correct and try again.

2. ฉันพบวิธีแก้ปัญหาสองวิธีสำหรับสิ่งนี้

โซลูชันที่ 1:

สิ่งที่ฉันได้ลองคือการอัปเดต"สคริปต์"ในไฟล์ package.json และฉันได้เพิ่มเข้าไป

"server": "nodemon app.js"

เหนือบรรทัดของรหัสและหลังจากนั้น

npm run server

โซลูตัน 2:

  1. กดปุ่ม Windows

  2. พิมพ์ "เส้นทาง" ในช่องค้นหาและเลือก "แก้ไขตัวแปรสภาพแวดล้อมระบบ"

  3. คลิกที่ "Environment Variables" ใกล้ด้านล่างสุด

  4. ในส่วน "ตัวแปรระบบ" ดับเบิลคลิกที่ตัวแปร "เส้นทาง"

  5. คลิก "ใหม่" ทางด้านขวามือ

  6. คัดลอกและวางลงในช่อง (แทนที่ [ชื่อผู้ใช้]):

C: \ Users [ชื่อผู้ใช้] \ AppData \ Roaming \ npm

  1. รีสตาร์ทเทอร์มินัลและ VSCode ของคุณ

  2. จากนั้นพิมพ์nodemon app.jsเพื่อเรียกใช้ nodemon

ฉันใช้โซลูชัน 2 เนื่องจากเราต้องการเรียกใช้ nodemon [filename.js]


0

คุณสามารถเรียกใช้แอปโหนดของคุณได้เพียงพิมพ์nodemon It First run index.js คุณสามารถใส่จุดเข้าในไฟล์นั้นได้อย่างง่ายดาย

หากคุณยังไม่ได้ติดตั้ง nodemon ก่อนอื่นคุณต้องติดตั้งโดย

npm install -g nodemon

หากคุณมีข้อผิดพลาดในการอนุญาตให้ใช้ไฟล์

sudo npm install -g nodemon

คุณสามารถตรวจสอบ nodemon ว่ามีอยู่หรือไม่โดย

nodemon -v

0

เรียกใช้คำสั่งนี้:

npm install nodemon -g

ตอนนี้จะติดตั้ง nodemon แต่ปัญหาในกรณีของฉันคือกำลังติดตั้ง nodemon ที่อื่นฉันเพิ่มเส้นทาง Nodejs จาก (ProgramFiles (x86)) แต่ไม่ได้ผลดังนั้นฉันจึงพบวิธีแก้ปัญหาอื่น

  • เรียกใช้คำสั่งด้านบน
  • จะมีเส้นทางที่แสดงระหว่างการติดตั้งที่ติดตั้ง nodemon จากนั้น [กรุณาไปที่ลิงค์ด้านล่างเพื่อดูเส้นทาง] [1]

    [1]: https://i.stack.imgur.com/ld2sU.png

  • คัดลอกเส้นทางไม่เกิน npm และตั้งเป็นตัวแปรสภาพแวดล้อม
  • ตอนนี้ลองใช้คำสั่งด้านล่างหวังว่ามันจะทำงาน

      nodemon YourAppName.js

0

ตัวเลือกทั้งหมดข้างต้นล้มเหลวฉันมีวิธีแก้ปัญหาแบบถาวรสำหรับสิ่งนี้ เพิ่มบรรทัดด้านล่างในpackage.jsonภายใต้การอ้างอิงและrun npm install. สิ่งนี้จะเพิ่มแพ็คเกจ nodemon ให้กับnode_modulesและเมื่อนั้นคุณก็ไปสนุกกับการเข้ารหัส

"nodemon": "^1.17.*"

3
ยินดีต้อนรับสู่ Stack Overflow เมื่อตอบคำถามเก่าพร้อมคำตอบที่มีอยู่การอธิบายว่าคำตอบของคุณนำมาจากข้อมูลใหม่ใด คำตอบนี้ดูเหมือนจะไม่แสดงการติดตั้งทั่วโลก แต่อ้างอิงถึงเวอร์ชันที่เฉพาะเจาะจง (ดังนั้นจึงไม่สามารถระบุอายุได้) และไม่ตอบคำถามที่ถูกถามเนื่องจากไม่ได้แสดงวิธีเปิดใช้งาน คำสั่ง
Jason Aller


0

นโยบายการดำเนินการเริ่มต้นของ Set-ExecutionPolicy cmdlet ถูก จำกัด สำหรับ Windows คุณสามารถลองติดตั้ง nodemon ได้โดยตั้งค่านโยบายนี้เป็นไม่ จำกัด

คำสั่ง execute: Set-ExecutionPolicy Unrestricted จากนั้นลองติดตั้ง nodemon และดำเนินการคำสั่ง:nodemon -v


0

ฉันได้แก้ไขด้วยวิธีนี้

  1. ถอนการติดตั้ง nodemon โลคัลที่มีอยู่

    npm ถอนการติดตั้ง nodemon

  2. ติดตั้งอีกครั้งทั่วโลก

    npm i -g nodemon


-2

ลบ nodemon เนื่องจากเป็นการพึ่งพา dev และใช้โหนดแทน

"scripts": {
     "start": "node server.js"
 },

สิ่งนี้ได้ผลสำหรับฉัน


ไม่ตอบคำถาม โหนดและโนเดมอนมีวัตถุประสงค์ที่แตกต่างกัน
joedotnot

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