Cách thực thi tập lệnh bắt đầu với Nodemon


90

Làm cách nào để thực thi tập lệnh bắt đầu từ tệp package.json với Nodemon?


Bạn có chắc mình có thể thực thi một tập lệnh bắt đầu từ package.json? Bởi vì theo những gì tôi biết thì package.json là liệt kê tất cả các phụ thuộc của bạn và gật đầu là để giữ cho quy trình của bạn chạy. Tôi không chắc bạn đang ám chỉ điều gì ở đây?
Saras Arya

Câu trả lời:


142

Đây sẽ là một lệnh đơn giản cho việc này

nodemon --exec npm start

Điều gì sẽ xảy ra nếu tôi chỉ cần chạy thử nghiệm mà không chạy ứng dụng? Giải pháp của bạn chạy cả hai.
Sergey

1
điều này không chạy npm startnhưng không khởi động máy chủ nút đối với tôi .. làm thế nào nó có thể biết server.js ở đâu?
Sonic Soul

39

Trong gói json:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

Sau đó, từ thiết bị đầu cuối, bạn có thể sử dụng npm start

Cài đặt Nodemon: https://www.npmjs.com/package/nodemon


1
Xin lỗi, đang tìm cách thực thi tập lệnh bắt đầu với gật đầu, không thực thi gật đầu trong tập lệnh bắt đầu. Xin lỗi nếu điều đó không rõ ràng.
Citronen

6
Sẽ không thành npm startcông trong sản xuất vì thiếu nút bấm?
ripper234,

2
npm run startkhôngnpm start
M. Dhaouadi.

1
Tôi là người mới bắt đầu với npm. Tôi không hiểu tại sao chúng ta cần phải chỉ định tập lệnh bắt đầu trong khi chúng ta có thể sử dụng gật gù? Tôi chỉ cần cài đặt gật đầu với npm và sử dụng nó trực tiếp mà không cần chỉ định bất kỳ tập lệnh nào và nó hoạt động hoàn hảo.
Hokhy Tann

@ M.Dhaouadi npm startlà bí danh củanpm run start
George,

16

Tôi có một tệp TypeScript được gọi là "server.ts", Các tập lệnh npm sau đây định cấu hình Nodemon và npm để khởi động ứng dụng của tôi và theo dõi bất kỳ thay đổi nào trên các tệp TypeScript:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

Tôi đã có Nodemon về phụ thuộc. Khi tôi chạy npm start, nó sẽ yêu cầu Nodemon giám sát các tệp của nó bằng cách sử dụng công -etắc và sau đó nó gọi myapptập lệnh npm, đây là một sự kết hợp đơn giản giữa việc chuyển các tệp typecript và sau đó khởi động server.js kết quả. Khi tôi thay đổi tệp TypeScript, do -echuyển đổi, chu kỳ tương tự sẽ xảy ra và các tệp .js mới sẽ được tạo và thực thi.


14

Tôi sử dụng Nodemon phiên bản 1.88.3 trong dự án Node.js của mình. Để cài đặt Nodemon, hãy xem trong https://www.npmjs.com/package/nodemon .

Kiểm tra package.json của bạn, xem "script" có thay đổi như thế này không:

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

server.jslà tên tệp của tôi, bạn có thể sử dụng tên khác cho tệp này như app.js.

Sau đó, chạy điều này trên thiết bị đầu cuối của bạn: npm run dev


6

Sử dụng -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"

Có cách nào khác ngoài hành động để làm điều này?
Citronen

Chỉ cần nodemon [options] --exec 'npm start -s'bạn muốn làm điều đó từ dòng lệnh.
nathanhleung

@ArnoldRoa Cài đặt nó.
Константин Ван

5

Đầu tiên hãy thay đổi tệp package.json của bạn ,

"scripts":
    { 
        "start": "node ./bin/www",
        "start-dev": "nodemon ./app.js"
    },

Sau đó, thực hiện lệnh

npm run start-dev

1
Nhưng khi bạn chạy tắt của app.jsbạn đang bỏ qua tất cả những gì ./bin/wwwkhông ...
Jake Wilson

1
tab này mở mới mỗi lần
Qui-Gon Jinn

5

Trong tệp package.json. thay đổi tệp như thế này

"scripts":{ 
   "start": "node ./bin/www", 
   "start-dev": "nodemon ./app.js"
 },

và sau đó thực thi npm run start-dev




1

Bạn cũng có thể cài đặt gật đầu trên toàn cầu để sử dụng thường xuyên:

npm i nodemon -g hoặc là sudo npm i nodemon -g

sau đó chỉnh sửa package.json của bạn:

  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },

Nói chung, 'dev' chỉ định việc sử dụng phát triển ( npm run dev ).


1

Nó sẽ phụ thuộc vào kiểu cài đặt Nodemon của bạn. Nếu bạn cài đặt Nodemon trên toàn cầu bằng cách sử dụng các lệnh ( npm install nodemon --globalhoặc npm install nodemon -g), bạn không phải chỉ định bất kỳ tập lệnh nào cho Nodemon trong tệp package.json của mình . Chỉ cần thực hiện lệnh nodemon index.jssẽ chạy dự án của bạn.

Nhưng nếu bạn cài đặt Nodemon cục bộ bằng lệnh npm install nodemonthì bạn phải chỉ định tập lệnh. Nếu bạn đặt tên nó là start thì npm run starthoặc npm startsẽ kích hoạt máy chủ chạy.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }

1

Nếu bạn đã nodemoncài đặt trên toàn cầu, chỉ cần chạy nodemontrong dự án của bạn sẽ tự động chạy starttập lệnh từ package.json.

Ví dụ:

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

Từ tài liệu của gật đầu :

gật đầu cũng sẽ tìm kiếm thuộc tính scripts.start trong package.json (kể từ gật đầu 1.1.x).


0

Trong gói json:

"scripts": {
  "start": "node index",
  "dev": "nodemon index"
},

"devDependencies": {
  "nodemon": "^2.0.2"
}

Và trong thiết bị đầu cuối để phát triển:

npm run dev

Và để khởi động máy chủ thường xuyên:

npm start

Là gì "regiuler" ? Bạn có nghĩa là "thường xuyên" ?
Peter Mortensen

-1

Để tránh cài đặt toàn cục, hãy thêm Nodemon làm phụ thuộc, sau đó ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },

Bạn vẫn có thể đặt nó thành "start-dev": "gật đầu ./bin/www" nếu bạn cài đặt nó trong devDependencies
WoLfPwNeR
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.