nodemonコマンドがノードjsサーバーのターミナルで認識されない


89

https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokensからnode.jsサーバーのセットアップを行っています。node.jsは初めてです。インストールしていnpm install nodemon --saveます。しかし、私がこれでサーバーを実行しているときnodemon server.js
表示されているターミナルで:

nodemonは、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません

ここに画像の説明を入力してください

node server.jsコマンドは機能していてサーバーを起動しましたが、nodemonコマンドは機能していません。

https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokensビデオからノードjsサーバーをセットアップしています。

なぜそれが機能しないのかわかりません。installnodemonに対していくつかのコマンドを試しました。

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をグローバルにインストールできないリンクが1つあり、「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 2016年

やぁ。nodemonをインストールしました。package.jsonファイルにスクリプトを入れました。そして、実行後npm runserve。結局のところ、nodemon server.jsを実行しますが、機能しません。
マーティン

package.json:{"scripts":{"serve": "nodemon server.js"}、 "name": "node-site"、 "version": "1.0.0"、 "description": ""、 " main ":" server.js "、" scripts ":{" test ":" echo \ "エラー:テストが指定されていません\" && 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 2016年

そこに2セットのスクリプトがあるため、1つのスクリプトオブジェクトにすべてのスクリプトを含める必要がある可能性があります
ndonohoe 2016年

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

これは私のために働いた。実際、私はウィンドウを持っていて、環境変数を修正する必要がありました。ありがとう:)
Laveena20年

21

まず、npm install --save nodemonと記述し、次にpackage.jsonに次のように記述します。

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

次に書く

npm run server

これはうまくいきました!どうもありがとう。クエリだけで、nodemonはサーバーファイルの再起動を防ぎますが、それでもブラウザを更新する必要があります。Angularの場合と同様に、ブラウザは自動的に更新できますか?
RahulSharma18年

8

私は同じ問題に直面していました。nodemonをdev-dependencyとしてインストールしましたが、サーバーを起動しようとすると、次のメッセージが表示されました。

nodemonは、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません

次に、グローバルにインストールしてサーバーを起動しようとしましたが、機能しました。

npm install -g nodemon

6

グローバルにインストールする必要がありますか?あなたはただ走ることができる必要がありますnodemon server.jsか?そうでない場合は、いつでもローカルプロジェクトディレクトリから呼び出すことができます。ここにあるはずです:

node_modules/.bin/nodemon

これは、シェルスクリプトからnodejsapiを実行するのに役立ちます。まことにありがとうございます!
Nam GVU20年

4

ノードプレフィックスがPATHENV変数にないため、グローバルにインストールされたモジュールはどれも認識されません。ぜひお試しください。cmdプロンプトnpmconfig get prefixを開き、結果のパスをPATH環境変数に追加します。これで、任意の場所からnodemonを実行できるようになります。このリンクを試して、それに従ってください。npm権限の修正 https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory


あなたのリンクにはLinux用の説明がありますが、Windows用のものはありますか?
Jose Rojas 2016年

4

この行はCMDの私の問題を解決しました:

npm install --save-dev nodemon

3
グローバルは私のために動作しませんでしたインストールnodemonが、この1はやった:)
codemirror

4

これは遅くなるかもしれませんが、何かを言う方が良いです:)

nodemon globbalyをインストールしたくない場合は、次を使用できます。 npxは、実行時にパッケージをインストールし、グローバルパッケージとして動作します(現時点で利用可能であり、グローバルには存在しないことに注意してください)。

したがって、必要なのはnpx nodemon server.js

  • npxnpm@5.2.0バージョン以降、そのまま使用できます。

3

nodemonを使用するには、グローバルにインストールする必要があります。

Windowsの場合

npm i -g nodemon

Mac用

sudo npm i -g nodemon

グローバルにインストールしたくない場合は、コマンドを実行してプロジェクトフォルダーにローカルにインストールできます。 npm i nodemon 。ローカルで実行すると、次のようなエラーが発生します。

nodemon:「nodemon」という用語はの名前として認識されません
コマンドレット、関数、スクリプトファイル、または操作可能なプログラム。スペルを確認してください
名前の、またはパスが含まれている場合は、パスが
修正して再試行してください。

このエラーを削除するには、 package.json ファイルを開いて追加します

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

その後、コマンドを実行するだけです

npm run server

そして、nodemonは正しく動作し始めます。


1
違う。あなたのスクリプトは、{ "サーバー": "nodemon server.js"}言うべき
joedotnot

3

nodemonをグローバルにインストールする必要はありません。このnpxnodemon <scriptname.js>を実行するだけです。それでおしまい。


1

開発マシンで新しいユーザープロファイルを作成した後、同じ問題が発生しました。

問題は、コンソール(コマンドプロンプト\ 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.これに対する2つの解決策を見つけました

解決策1:

私が試したのは、package.jsonファイルの「スクリプト」を更新することで、そこに追加しました

"server": "nodemon app.js"

コード行の上とその後

npm run server

ソルトン2:

  1. Windowsキーを押します。

  2. 検索ボックスに「パス」と入力し、「システム環境変数の編集」を選択します

  3. 下部にある「環境変数」をクリックします。

  4. 「システム変数」セクションで、「パス」変数を​​ダブルクリックします。

  5. 右側の「新規」をクリックします。

  6. これをコピーしてボックスに貼り付けます([ユーザー名]を置き換えます)。

C:\ Users [Username] \ AppData \ Roaming \ npm

  1. ターミナルとVSCodeを再起動します。

  2. 次にnodemon app.js、nodemonを実行するために入力します

nodemon [filename.js]を実行する必要があるため、ソリューション2を適用しました。


0

nodemon ItFirstrun index.js」と入力するだけで、ノードアプリを実行できます。エントリポイントをそのファイルに簡単に配置できます。

nodemonをインストールしていない場合は、最初に次の方法でインストールする必要があります。

npm install -g nodemon

権限エラーが発生した場合は、

sudo npm install -g nodemon

nodemonが存在するかどうかを確認するには

nodemon -v

0

次のコマンドを実行します。

npm install nodemon -g

これでnodemonがインストールされますが、私の場合の問題は、nodemonを別の場所にインストールしていることです。(ProgramFiles(x86))からNodejsパスを追加しましたが、機能しなかったため、別の解決策を見つけました。

  • 上記のコマンドを実行
  • 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
StackOverflowへようこそ。既存の回答で古い質問に回答する場合、回答がもたらす新しい情報を説明すると便利です。この回答はグローバルインストールを示しているようには見えず、特定のバージョンを参照しているため(したがって、古くなりません)、有効にする方法が示されていないという点で、尋ねられた質問には答えていません。コマンド。
ジェイソンアラー


0

Set-ExecutionPolicyコマンドレットのデフォルトの実行ポリシーはWindows用に制限されています。このポリシーをUnrestrictedに設定すると、nodemonのインストールを試すことができます。

コマンドを実行します:Set-ExecutionPolicy Unrestricted 次にnodemonをインストールしてコマンドを実行します:nodemon -v


0

私はこのように修正しました

  1. 既存のローカルnodemonをアンインストールします

    npmアンインストールnodemon

  2. グローバルに再インストールしてください。

    npm i -g nodemon


-2

nodemonはdev依存関係であるため削除し、代わりにnodeを使用します。

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

これは私のために働いた。


質問には答えません。nodeとnodemonの目的は異なります。
joedotnot

それは違うことです。nodemonの場合は「server」である必要があります:「nodemonapp.js」
ShubhamKumar20年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.