express new 'filename'ผมได้ติดตั้งแอพลิเคชันโดยใช้คำสั่ง ฉันเพิ่งเรียนรู้ว่าคุณสามารถเริ่มใช้งานแอปพลิเคชันโดยใช้:
npm start
ป่านนี้ฉันได้ใช้:
node app.js
เพื่อเริ่มต้นเซิร์ฟเวอร์ของฉัน ไม่มีใครรู้ว่าความแตกต่างระหว่างสองคืออะไร? ขอบคุณ
express new 'filename'ผมได้ติดตั้งแอพลิเคชันโดยใช้คำสั่ง ฉันเพิ่งเรียนรู้ว่าคุณสามารถเริ่มใช้งานแอปพลิเคชันโดยใช้:
npm start
ป่านนี้ฉันได้ใช้:
node app.js
เพื่อเริ่มต้นเซิร์ฟเวอร์ของฉัน ไม่มีใครรู้ว่าความแตกต่างระหว่างสองคืออะไร? ขอบคุณ
คำตอบ:
จากหน้าคนเริ่มต้น NPM:
เรียกใช้สคริปต์ "เริ่มต้น" ของแพคเกจหากมีให้ หากไม่ได้ระบุเวอร์ชันไว้จะเริ่มเวอร์ชัน "แอ็คทีฟ"
เป็นที่ยอมรับว่าคำอธิบายนั้นไม่ช่วยเหลืออย่างสมบูรณ์และนั่นคือทั้งหมดที่กล่าวไว้ อย่างน้อยก็มีเอกสารมากกว่า socket.io
อย่างไรก็ตามสิ่งที่เกิดขึ้นจริงคือ npm ดูในไฟล์package.jsonของคุณและหากคุณมีสิ่งที่ชอบ
"สคริปต์": {"start": "coffee server.coffee"}
จากนั้นมันจะทำเช่นนั้น หาก npm ไม่พบสคริปต์เริ่มต้นของคุณจะมีค่าเริ่มต้นเป็น:
node server.js
เอกสารได้รับการปรับปรุง คำตอบของฉันมีการเปลี่ยนแปลงที่สำคัญเทียบกับคำตอบที่ยอมรับได้: ฉันต้องการสะท้อนเอกสารเป็นปัจจุบันและคำตอบที่ยอมรับมีลิงก์ที่ใช้งานไม่ได้
นอกจากนี้ฉันไม่เข้าใจเมื่อคำตอบที่ยอมรับตอบว่า "เป็นค่าเริ่มต้นnode server.js" ฉันคิดว่าเอกสารอธิบายพฤติกรรมเริ่มต้นชัดเจนขึ้น:
NPM เริ่มต้น
เริ่มแพ็คเกจ
สรุป
npm start [-- <args>]ลักษณะ
นี้จะทำงานคำสั่งโดยพลการระบุไว้ในแพคเกจ "
startคุณสมบัติ" ของ "scriptsวัตถุ" ถ้าไม่มี "start" ทรัพย์สินที่ระบุไว้ใน "scripts" วัตถุมันจะทำงานnode server.js
โดยสรุปการวิ่งnpm startสามารถทำหนึ่งในสองสิ่งต่อไปนี้:
npm start {command_name}: เรียกใช้คำสั่งโดยพลการ (เช่นถ้าระบุคำสั่งดังกล่าวในstartคุณสมบัติของscriptsวัตถุของ package.json )npm start: อื่นถ้าไม่มีstartคุณสมบัติ (หรือไม่command_nameผ่าน): Run node server.js(ซึ่งอาจไม่เหมาะสมตัวอย่างเช่น OP ไม่มีserver.js; OP ทำงานnodeapp.js)package.jsonในไดเรกทอรีที่คุณเรียกใช้npm startคุณอาจเห็นข้อผิดพลาด:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'