コマンドexpress new 'filename'
を使用してアプリケーションをインストールしました。次を使用してアプリケーションを開始できることを学びました。
npm start
これまで私は使用しました:
node app.js
サーバーを起動します。誰が2つの違いが知っていますか?ありがとう。
manページ から、npm start:
パッケージの「開始」スクリプト(提供されている場合)を実行します。バージョンが指定されていない場合、「アクティブ」バージョンが開始されます。
確かに、その説明はまったく役に立たないので、それだけです。少なくとも、socket.ioよりも文書化されています。
とにかく、実際に起こるのは、npmが package.json ファイルを見て、
"scripts":{"start": "coffee server.coffee"}
それはそれを行います。 npmが開始スクリプトを見つけられない場合、デフォルトは次のとおりです。
node server.js
ドキュメントが更新されました 。私の答えには、受け入れられた答えと比べて大幅な変更があります。ドキュメントが最新であることを反映したかったため、受け入れられた答えにはいくつかの壊れたリンクがあります。
また、受け入れられた答えが「デフォルトはnode server.js
」と言ったとき、私は理解していませんでした。ドキュメントはデフォルトの動作を明確にしていると思います:
npm-start
パッケージを開始する
あらすじ
npm start [-- <args>]
説明
これにより、パッケージの「
start
」オブジェクトの「scripts
」プロパティで指定された任意のコマンドが実行されます。 「start
」プロパティに「scripts
」プロパティが指定されていない場合、node server.js
を実行します。
要約すると、npm start
を実行すると、次の2つのいずれかを実行できます。
npm start {command_name}
:任意のコマンドを実行します(つまり、package.jsonのstart
オブジェクトのscripts
プロパティでそのようなコマンドが指定されている場合)npm start
:start
プロパティが存在しない場合(またはcommand_name
が渡されない場合):node server.js
を実行します(これはが適切でない場合があります。たとえば、OPにはserver.js
がありません。OP node
app.js
)を実行しますpackage.json
を実行するディレクトリにnpm start
がない場合、エラーが表示される場合があります:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'