Câu trả lời:
Từ trang người đàn ông , npm bắt đầu:
chạy tập lệnh "bắt đầu" của gói, nếu được cung cấp. Nếu không có phiên bản nào được chỉ định, thì nó sẽ bắt đầu phiên bản "hoạt động".
Phải thừa nhận rằng mô tả đó hoàn toàn không có ích, và đó là tất cả những gì nó nói. Ít nhất đó là tài liệu nhiều hơn socket.io.
Nhưng dù sao, những gì thực sự xảy ra là vẻ NPM trong bạn package.json tập tin, và nếu bạn có một cái gì đó như
"script": {"start": "coffee server.coffee"}
sau đó nó sẽ làm điều đó Nếu npm không thể tìm thấy tập lệnh bắt đầu của bạn, nó sẽ mặc định là:
nút server.js
Các tài liệu đã được cập nhật . Câu trả lời của tôi có những thay đổi đáng kể so với câu trả lời được chấp nhận: Tôi muốn phản ánh tài liệu được cập nhật và câu trả lời được chấp nhận có một vài liên kết bị hỏng.
Ngoài ra, tôi không hiểu khi câu trả lời được chấp nhận nói "nó mặc định là node server.js
". Tôi nghĩ rằng tài liệu làm rõ hành vi mặc định:
bắt đầu
Bắt đầu một gói
Tóm tắc
npm start [-- <args>]
Sự miêu tả
Điều này chạy một lệnh tùy ý được chỉ định trong thuộc tính "
start
" củascripts
đối tượng "" của gói . Nếu không có thuộc tính "start
" được chỉ định trênscripts
đối tượng "", nó sẽ chạynode server.js
.
Tóm lại, chạy npm start
có thể làm một trong hai điều:
npm start {command_name}
: Chạy một lệnh tùy ý (nghĩa là nếu lệnh đó được chỉ định trong thuộc start
tính của scripts
đối tượng của gói.json )npm start
: Khác nếu không có thuộc start
tính nào tồn tại (hoặc không command_name
được thông qua): Chạy node server.js
, ( có thể không phù hợp , ví dụ OP không có server.js
; OP chạy node
app.js
)package.json
trong thư mục nơi bạn chạy npm start
, bạn có thể thấy lỗi:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'