ฉันจะรันสคริปต์เริ่มต้นจากไฟล์package.jsonด้วย Nodemon ได้อย่างไร
ฉันจะรันสคริปต์เริ่มต้นจากไฟล์package.jsonด้วย Nodemon ได้อย่างไร
คำตอบ:
นี่จะเป็นคำสั่งง่ายๆสำหรับสิ่งนี้
nodemon --exec npm start
npm start
แต่ไม่เริ่มต้นเซิร์ฟเวอร์โหนดสำหรับฉัน .. มันจะรู้ได้อย่างไรว่า server.js อยู่ที่ไหน?
ในแพ็คเกจ json:
{
"name": "abc",
"version": "0.0.1",
"description": "my server",
"scripts": {
"start": "nodemon my_file.js"
},
"devDependencies": {
"nodemon": "~1.3.8",
},
"dependencies": {
}
}
จากนั้นคุณสามารถใช้เครื่องปลายทางได้ npm start
การติดตั้ง Nodemon: https://www.npmjs.com/package/nodemon
npm start
ล้มเหลวในการผลิตเพราะขาด nodemon?
npm run start
notnpm start
npm start
เป็นนามแฝงของnpm run start
ฉันมีไฟล์ TypeScript ชื่อ "server.ts" สคริปต์ npm ต่อไปนี้กำหนดค่า Nodemon และ npm เพื่อเริ่มต้นแอปของฉันและตรวจสอบการเปลี่ยนแปลงใด ๆ ในไฟล์ TypeScript:
"start": "nodemon -e ts --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",
ฉันมี Nodemon อยู่แล้วในการอ้างอิง เมื่อฉันเรียกใช้npm start
มันจะขอให้ Nodemon มอนิเตอร์ไฟล์โดยใช้-e
สวิตช์จากนั้นมันจะเรียกmyapp
สคริปต์ npm ซึ่งเป็นการรวมกันอย่างง่าย ๆ ของการแยกไฟล์ typescript จากนั้นเริ่มต้นเซิร์ฟเวอร์ผลลัพธ์ เมื่อฉันเปลี่ยนไฟล์ TypeScript เนื่องจากการ-e
สลับวงจรเดียวกันเกิดขึ้นและไฟล์. js ใหม่จะถูกสร้างและดำเนินการ
ฉันใช้ Nodemon เวอร์ชัน 1.88.3 ในโปรเจ็กต์ Node.js ของฉัน การติดตั้ง Nodemon ดูในhttps://www.npmjs.com/package/nodemon
ตรวจสอบ package.json ของคุณดูว่า "scripts" มีการเปลี่ยนแปลงดังนี้:
"scripts": {
"dev": "nodemon server.js"
},
server.js
คือชื่อไฟล์ของฉันคุณสามารถใช้ชื่ออื่นสำหรับไฟล์นี้เช่นapp.js
.
หลังจากนั้นให้เรียกใช้สิ่งนี้บนเทอร์มินัลของคุณ: npm run dev
ใช้-exec
:
"your-script-name": "nodemon [options] --exec 'npm start -s'"
nodemon [options] --exec 'npm start -s'
หากคุณต้องการทำจากบรรทัดคำสั่ง
ก่อนอื่นให้เปลี่ยนไฟล์package.jsonของคุณ
"scripts":
{
"start": "node ./bin/www",
"start-dev": "nodemon ./app.js"
},
หลังจากนั้นรันคำสั่ง
npm run start-dev
app.js
คุณกำลังข้ามทุกสิ่งที่./bin/www
ทำ ...
ในไฟล์ package.json เปลี่ยนไฟล์เป็นแบบนี้
"scripts":{
"start": "node ./bin/www",
"start-dev": "nodemon ./app.js"
},
จากนั้นรันnpm รัน start-dev
Nodemon ปล่อยเหตุการณ์ทุกครั้งที่มีการเปลี่ยนแปลงสถานะ เริ่ม, รีสตาร์ทข้อขัดข้อง ฯลฯ คุณสามารถเพิ่มไฟล์คอนฟิกูเรชัน Nodemon (nodemon.json) ดังนี้:
{
"events": {
"start": "npm run *your_file*"
}
}
อ่านเพิ่มเติมในเหตุการณ์ Nodemon - งานทำงานในช่วงเริ่มต้นเซิร์ฟเวอร์เริ่มต้นผิดพลาดออก
หากติดตั้งทั่วโลกแล้ว
"scripts": {
"start": "nodemon FileName.js(server.js)",
},
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งnodemon
ทั่วโลก:
npm install -g nodemon
สุดท้ายหากคุณเป็นผู้ใช้ Windows ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานข้อ จำกัด ด้านความปลอดภัยของ Windows PowerShellแล้ว
ในแพ็คเกจjson
:
"scripts": {
"start": "node index",
"dev": "nodemon index"
},
"devDependencies": {
"nodemon": "^2.0.2"
}
และในเทอร์มินัลสำหรับการพัฒนา:
npm run dev
และสำหรับการเริ่มต้นเซิร์ฟเวอร์ปกติ:
npm start
คุณยังสามารถติดตั้ง nodemon ได้ทั่วโลกเพื่อการใช้งานบ่อย:
npm i nodemon -g
หรือ sudo npm i nodemon -g
จากนั้นแก้ไข package.json ของคุณ:
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
โดยทั่วไป 'dev' จะระบุการใช้งานเพื่อการพัฒนา ( npm run dev )
จะขึ้นอยู่กับประเภทของการติดตั้ง Nodemon ของคุณ หากคุณติดตั้ง Nodemon ทั่วโลกโดยใช้คำสั่ง ( npm install nodemon --global
หรือnpm install nodemon -g
) คุณไม่จำเป็นต้องระบุสคริปต์ใด ๆ สำหรับ Nodemon ในไฟล์package.jsonของคุณ เพียงดำเนินการคำสั่งnodemon index.js
จะเรียกใช้โครงการของคุณ
แต่ถ้าคุณติดตั้ง Nodemon แบบโลคัลโดยใช้คำสั่งnpm install nodemon
คุณต้องระบุสคริปต์ หากคุณมันเป็นชื่อที่เริ่มต้นแล้วnpm run start
หรือnpm start
จะเรียกเซิร์ฟเวอร์เพื่อการทำงาน
// Absolutely no need for global installation
"scripts": {
"start": "nodemon index.js"
}
หากคุณnodemon
ติดตั้งทั่วโลกเพียงแค่เรียกใช้nodemon
ในโปรเจ็กต์ของคุณก็จะเรียกใช้start
สคริปต์โดยอัตโนมัติจากpackage.json
สคริปต์จาก
ตัวอย่างเช่น:
"scripts": {
"start": "node src/server.js"
},
จากเอกสาร nodemon :
nodemon จะค้นหาคุณสมบัติ scripts.start ใน package.json ด้วย (ณ nodemon 1.1.x)
เพื่อหลีกเลี่ยงการติดตั้งแบบโกลบอลให้เพิ่ม Nodemon เป็นการอ้างอิงจากนั้น ...
package.json
"scripts": {
"start": "node ./bin/www",
"start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
},