Lệnh gật đầu không được nhận dạng trong thiết bị đầu cuối cho máy chủ nút js


86

Tôi đang thiết lập máy chủ node.js từ https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens . Tôi là người mới trong node.js. Tôi đang cài đặt npm install nodemon --save. Nhưng khi tôi chạy máy chủ với cái này nodemon server.js.
Trong thiết bị đầu cuối hiển thị:

gật đầu không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt

nhập mô tả hình ảnh ở đây

node server.jslệnh đang hoạt động và khởi động máy chủ, Nhưng nodemonlệnh không hoạt động.

Tôi đang thiết lập máy chủ js nút từ https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens video.

Tôi không biết tại sao nó không hoạt động. Tôi đã thử một số lệnh cho cài đặt gật đầu.

npm install -g nodemon 
npm install -g nodemon --save 
npm install --save-dev nodemon 
npm install -g nodemon@debug 

npm install -g --force nodemon

Tôi đã nhìn thấy một liên kết Tôi không thể cài đặt gật đầu trên toàn cầu, "gật đầu" không được nhận dạng , Nhưng tôi không biết cách đặt đường dẫn vì vị trí dự án của tôi trong ổ D.

Tôi muốn chạy nodemon server.js. Nếu ai có ý tưởng xin vui lòng chia sẻ. Cảm ơn trước.

Câu trả lời:


208

Bạn cần cài đặt nó trên toàn cầu

npm install -g nodemon
# or if using yarn
yarn global add nodemon

Và sau đó nó sẽ có sẵn trên đường dẫn (tôi thấy bây giờ bạn đã thử điều này và nó không hoạt động, đường dẫn của bạn có thể bị rối)

Nếu bạn muốn sử dụng phiên bản được cài đặt cục bộ, thay vì cài đặt trên toàn cầu thì bạn có thể tạo một tập lệnh trong gói của mình.json

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

và sau đó sử dụng

npm run serve

tùy chọn nếu sử dụng sợi

# without adding serve in package.json
yarn run nodemon server.js
# with serve script in package.json
yarn run serve

npm sau đó sẽ tìm trong thư mục node_modules cục bộ của bạn trước khi tìm kiếm lệnh trong mô-đun chung của bạn


Những gì không hoạt động? Tập lệnh sử dụng cài đặt cục bộ?
ndonohoe

Yaa. Tôi đã cài đặt gật đầu. Tôi đã đưa tập lệnh vào tệp package.json. Và sau khi chạy npm chạy phục vụ. Sau khi tất cả, sau đó chạy máy chủ gật đầu.js nhưng không hoạt động.
Martin

package.json: {"scripts": {"serve": "gật gù server.js"}, "name": "node-site", "version": "1.0.0", "description": "", " main ":" server.js "," scripts ": {" test ":" echo \ "Lỗi: không có bài kiểm tra nào được chỉ định \" && exit 1 "}," author ":" "," license ":" ISC ", "dependencies": {"express": "^ 4.14.0", "gật gù": "^ 1.11.0"}, "devDependencies": {"gulp-gật gù": "^ 2.2.1", "gật gù": "^ 1.11.0"}}
Martin

Bạn có thể làm rõ "không hoạt động"? Có lỗi không? Không có gì xảy ra?
ndonohoe

Nó có thể là bởi vì bạn có hai bộ kịch bản trong đó, bạn phải có tất cả các kịch bản trong một kịch bản phản đối
ndonohoe

31
  1. Cài đặt gật đầu trên toàn cầu:

    C:\>npm install -g nodemon
    
  2. Nhận tiền tố:

    C:\>npm config get prefix
    

    Bạn sẽ nhận được đầu ra như sau trong bảng điều khiển của mình:

    C:\Users\Family\.node_modules_global
    

    Sao chép nó.

  3. Thiết lập đường dẫn.
    Đi tới Cài đặt hệ thống nâng cao → Biến môi trường → Nhấp vào Mới (Trong Biến người dùng) → Biểu mẫu bật lên sẽ được hiển thị → Chuyển các giá trị sau:

    variable name = path,
    variable value = Copy output from your console
    
  4. Bây giờ chạy Nodemon:

    C:\>nodemon .
    

Những công việc này!! Đây là tôi đã tìm kiếm. Cảm ơn bạn
yashjain12yj

điều này đã làm việc cho tôi. Trên thực tế, tôi có cửa sổ và cần phải sửa các biến môi trường. Cảm ơn :)
Laveena

21

Đầu tiên, hãy viết npm install - lưu gật đầu, sau đó trong package.json viết như sau

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

sau đó viết

npm run server

Điều này đã hiệu quả! Cảm ơn rất nhiều. Chỉ là một truy vấn, gật đầu ngăn chúng tôi khởi động lại tệp máy chủ, nhưng chúng tôi vẫn phải làm mới trình duyệt. Trình duyệt có thể tự làm mới, giống như ở dạng góc cạnh không?
Rahul Sharma

8

Tôi đã phải đối mặt với cùng một vấn đề. Tôi đã cài đặt gật đầu làm phụ thuộc vào nhà phát triển và khi tôi cố gắng khởi động máy chủ, nó đưa ra thông báo rằng

gật đầu không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt

Sau đó, tôi đã cài đặt nó trên toàn cầu và cố gắng khởi động máy chủ và nó đã hoạt động!

npm install -g nodemon

6

Nó có cần phải được cài đặt trên toàn cầu không? Bạn có cần phải chạy nodemon server.jskhông? Nếu không, bạn luôn có thể gọi nó từ thư mục dự án cục bộ của mình. Nên ở đây:

node_modules/.bin/nodemon

Điều này rất hữu ích để tôi chạy api nodejs của mình từ tập lệnh shell. Cảm ơn rất nhiều!
Nam G VU

4

Vì tiền tố nút không có trong biến PATH ENV, bất kỳ mô-đun nào được cài đặt toàn cầu sẽ không được nhận dạng. Hãy thử cái này. Mở cmd nhắc npm config get prefix thêm đường dẫn kết quả vào biến env PATH. Bây giờ bạn có thể chạy gật đầu từ bất kỳ vị trí nào. hãy thử liên kết này và làm theo nó. sửa quyền npm https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-aosystem-directory


Trong liên kết của bạn là hướng dẫn cho linux, bạn có cái gì cho windows không?
Jose Rojas

4

Dòng này đã giải quyết vấn đề của tôi trong CMD:

npm install --save-dev nodemon

3
Toàn cầu nodemon cài đặt không làm việc cho tôi nhưng điều này đã làm :)
codemirror

4

Điều này có thể đến muộn, nhưng tốt hơn nên nói điều gì đó :)

Nếu bạn không muốn cài đặt toàn cầu gật đầu mà bạn có thể sử dụng npx, nó sẽ cài đặt gói tại thời điểm chạy và sẽ hoạt động như gói toàn cầu (hãy nhớ rằng nó chỉ có sẵn tại thời điểm này và không tồn tại trên toàn cầu!).

Vì vậy, tất cả những gì bạn cần là npx nodemon server.js.

  • npxcó thể được sử dụng khỏi hộp từ npm@5.2.0phiên bản trở lên.

3

Để sử dụng gật đầu, bạn phải cài đặt nó trên toàn cầu.

Cho cửa sổ

npm i -g gật đầu

Đối với Mac

sudo npm i -g gật đầu

Nếu bạn không muốn cài đặt nó trên toàn cầu, bạn có thể cài đặt nó cục bộ trong thư mục dự án của mình bằng cách chạy lệnh npm i nodemon . Nó sẽ báo lỗi như thế này nếu chạy cục bộ:

gật đầu: Thuật ngữ 'gật đầu' không được công nhận là tên của một
lệnh ghép ngắn, hàm, tệp kịch bản hoặc chương trình có thể hoạt động. Kiểm tra chính tả
tên hoặc nếu một đường dẫn được bao gồm, hãy xác minh rằng đường dẫn đó là
sửa và thử lại.

Để loại bỏ lỗi này, hãy mở package.json tệp và thêm

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

và sau đó chỉ cần chạy lệnh

npm chạy máy chủ

và nút của bạn sẽ bắt đầu hoạt động bình thường.


1
Sai lầm. Kịch bản của bạn nên nói { "máy chủ": "nodemon server.js"}
joedotnot

2

Không cần cài đặt gật đầu trên toàn cầu. Chỉ cần chạy npx gật đầu này <scriptname.js> . Đó là nó.


1

Vừa gặp sự cố tương tự sau khi tạo hồ sơ người dùng mới trên máy phát triển của tôi.

Vấn đề là tôi không chạy bảng điều khiển (dấu nhắc lệnh \ powershell ISE) với tư cách quản trị viên.

Chạy với tư cách là quản trị viên đã giải quyết vấn đề này cho tôi.


1

Tôi đã thử cài đặt gật đầu trên toàn cầu nhưng điều đó không hiệu quả với tôi. bất cứ khi nào tôi cố gắng chạy nó luôn hiển thị cho tôi lỗi:

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. Tôi đã tìm thấy hai giải pháp cho việc này

giải pháp 1:

Những gì tôi đã thử là cập nhật "script" trong tệp package.json và ở đó tôi đã thêm

"server": "nodemon app.js"

dòng mã trên và sau đó

npm run server

Soluton 2:

  1. Nhấn phím Windows.

  2. Nhập "Đường dẫn" vào hộp tìm kiếm và chọn "Chỉnh sửa các biến môi trường hệ thống"

  3. Nhấp vào "Biến môi trường" ở gần cuối.

  4. Trong phần "Biến Hệ thống", hãy nhấp đúp vào biến "Đường dẫn".

  5. Nhấp vào "Mới" ở phía bên tay phải.

  6. Sao chép và dán cái này vào hộp (thay thế [Tên người dùng]):

C: \ Users [Tên người dùng] \ AppData \ Roaming \ npm

  1. khởi động lại thiết bị đầu cuối và VSCode của bạn.

  2. Sau đó gõ nodemon app.jsđể chạy gật đầu

tôi đã áp dụng giải pháp 2 vì chúng tôi chỉ cần chạy gật đầu [filename.js]


0

Bạn có thể chạy ứng dụng nút của mình bằng cách chỉ cần gõ nodemon It First run index.js Bạn có thể đặt điểm nhập của mình vào tệp đó một cách dễ dàng.

Nếu bạn chưa cài đặt gật đầu thì trước tiên bạn phải cài đặt nó bằng cách

npm install -g nodemon

Nếu bạn gặp bất kỳ lỗi quyền nào thì hãy sử dụng

sudo npm install -g nodemon

Bạn có thể kiểm tra nút có tồn tại hay không bằng cách

nodemon -v

0

Chạy lệnh này:

npm install nodemon -g

Bây giờ nó sẽ cài đặt gật đầu nhưng vấn đề với trường hợp của tôi là nó đang cài đặt gật đầu ở một nơi khác. Tôi đã thêm đường dẫn Nodejs từ (ProgramFiles (x86)) nhưng điều đó không hoạt động nên tôi đã tìm ra giải pháp khác.

  • Chạy lệnh trên
  • Sẽ có một đường dẫn được hiển thị trong quá trình cài đặt nơi gật đầu được cài đặt, sau đó [Vui lòng truy cập liên kết bên dưới để xem đường dẫn] [1]

    [1]: https://i.stack.imgur.com/ld2sU.png

  • Sao chép đường dẫn tối đa npm và đặt nó thành biến môi trường
  • Bây giờ hãy thử lệnh dưới đây, hy vọng nó sẽ chạy

      gật đầu YourAppName.js

0

Tất cả các tùy chọn trên đều không thành công, tôi đã có giải pháp vĩnh viễn cho việc này. Thêm dòng bên dưới trong package.json dưới phần phụ thuộc và run npm install. Điều này sẽ thêm gói nút vào node_modules và bạn có thể tận hưởng quá trình viết mã.

"nodemon": "^1.17.*"

3
Chào mừng bạn đến với Stack Overflow. Khi trả lời một câu hỏi cũ hơn với các câu trả lời hiện có, sẽ hữu ích khi giải thích câu trả lời của bạn mang lại thông tin mới nào. Câu trả lời này dường như không hiển thị cài đặt toàn cầu, nó tham chiếu đến một phiên bản cụ thể (vì vậy nó sẽ không cũ kỹ) và nó không trả lời câu hỏi đã được hỏi vì nó không hiển thị cách bật chỉ huy.
Jason Aller

0

Chỉ cần cài đặt Toàn cầu

 npm install -g  nodemon

Nó hoạt động với tôi trên Windows 10.

nodemon app.js

0

Chính sách thực thi mặc định của lệnh ghép ngắn Set-ExecutionPolicy là Bị hạn chế đối với Windows. Bạn có thể thử cài đặt gật đầu bằng cách đặt chính sách này thành Không hạn chế.

thực hiện lệnh: Set-ExecutionPolicy Unrestricted và sau đó thử cài đặt gật đầu và thực hiện lệnh:nodemon -v


0

Tôi đã sửa theo cách này

  1. gỡ cài đặt nút địa phương hiện có

    npm gỡ cài đặt gật đầu

  2. cài đặt lại trên toàn cầu.

    npm i -g gật đầu


-2

Loại bỏ nút vì nó phụ thuộc vào nhà phát triển và sử dụng nút thay vì nó.

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

Điều này đã làm việc cho tôi.


Không trả lời câu hỏi. nút và nút có các mục đích khác nhau.
joedotnot

nó khác điều. Đối với gật đầu, nó phải là "máy chủ": "gật đầu app.js"
Shubham Kumar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.