2012-04-11 32 views
22

Tôi đang giới thiệu thử nghiệm đơn vị trong dự án của mình và cho điều này, tôi cần tự tạo một tệp package.json.gói sản phẩm package.json/npm không sử dụng

Câu hỏi đầu tiên là, bạn đang sử dụng unit testing suite? Tôi đang tìm kiếm về phía trước mocha mà dường như là khá nhiều tiêu chuẩn cho các dự án Node.js.

Câu hỏi thứ hai là: Có cách nào kỳ diệu để tạo tệp package.json không? (Đối với phụ thuộc và các phiên bản)

Thứ ba câu hỏi là: Tôi đã thử nghiệm rất nhiều npm packages trong khi phát triển dự án của tôi và bây giờ tôi đang mắc kẹt với rất nhiều gói lẽ không sử dụng. Có cách nào để nói cái nào là vô dụng? (Tôi thấy npm list installed hữu ích)

+2

http://npmjs.org/doc/init.html có lẽ là cách dễ nhất để tạo dự án npm. Và tôi khuyên bạn nên đọc ton http://npmjs.org/doc/json.html và để tự trang bị cho mình những gói được sử dụng và thử nghiệm, ví dụ như express hoặc npm. –

+0

Bạn thực sự nên hỏi ba câu hỏi riêng biệt. – Domenic

+1

Wow! Rất nhiều câu trả lời hay! Nhờ tất cả mọi người, điều này rất hữu ích! Keep'em coming! – TomShreds

Trả lời

6
  1. Tôi cũng đang sử dụng Mocha.Nó có phạm vi mã, BDD, TDD, chạy trong trình duyệt. Nó khá hoàn chỉnh và cũng được duy trì rất nhiều bởi tôi nghĩ rằng một trong những lập trình viên javascript/node.js xuất sắc nhất có tên là TJ.

  2. Gần như không thể đoán được (các) phiên bản nào sẽ sử dụng. Bởi vì npm không biết phiên bản nào phá vỡ các phụ thuộc nào. Bạn có thể cài đặt tất cả các phụ thuộc sử dụng một cái gì đó như node-detective. Sau đó, bạn chỉ có thể cài đặt chúng bằng cách sử dụng npm.js từ bên trong javascript. Có lẽ tôi muốn giải quyết vấn đề này trong tương lai.

  3. Tôi cũng có thể xóa tất cả các phụ thuộc, cài đặt tiếp theo phụ thuộc cần thiết trở lại bằng bước (2). Nhưng cũng không gian đĩa không phải là một trường hợp lớn nữa với các HD hiện tại.

Tái bút: Tôi nghĩ tôi cũng đồng ý với Domenic

3
  1. Tôi đang sử dụng lời thề. Nó khá tốt, nhưng không hoàn hảo. Tôi đã tìm thấy kiểm tra đơn vị trong nút thường là thách thức vì gọi lại async để dbs & như vậy, và chủ yếu là thử nghiệm chức năng cấp cao nhất.

  2. Đây là phép thuật của bạn: Managing Node.js Dependencies with Shrinkwrap.

  3. Cách duy nhất để biết bạn đang sử dụng gói nào. Bạn không thể tạo chương trình này theo cách lập trình. Lời khuyên của tôi là loại bỏ các gói tích cực, sau đó kiểm tra lại tất cả các chức năng - nếu nó bị hỏng, bạn sẽ biết bạn cần phải cài đặt lại một trong các gói của bạn.

+0

+1 cho điểm # 3 – Domenic

34
  1. Tôi đang sử dụng Mocha.

  2. npm init

  3. npm ls sẽ liệt kê "không liên quan" bên cạnh những người mà không phải là trong package.json của bạn. Nhưng, có vẻ như bạn chưa có package.json.


Về cơ bản, công việc của bạn là rất lạc hậu. Dưới đây là cách hoạt động của nó:

  1. Bắt đầu dự án mới với npm init. Nó không có phụ thuộc.
  2. Ồ, tôi muốn bắt đầu sử dụng gói, nói express? Thêm nó vào package.json dưới sự phụ thuộc, sau đó chạy npm install.
  3. Ồ, tôi muốn bắt đầu sử dụng gói để phát triển, giả sử mocha? Thêm nó vào package.json dưới devDependencies, sau đó chạy npm install.

Dường như bạn có một số mã hiện có với các gói được cài đặt thủ công (qua npm install <packageName>), đây là một mớ hỗn độn. Tôi khuyên bạn nên bắt đầu lại và thực hiện theo quy trình trên.

+0

Bạn hoàn toàn đúng khi bạn nói điều đó là lạc hậu. Nó được cho là một dự án thử nghiệm nhỏ bé nhưng hóa ra là lớn hơn và không phải để thử nghiệm hơn tôi mong đợi hehe. Cảm ơn câu trả lời của bạn! – TomShreds

+9

Bạn cũng có thể thực hiện 'npm install --save' sẽ tự động thêm nó vào' package.json' của bạn. Xem ở đây để biết thêm chi tiết: https://npmjs.org/doc/install.html. Tôi thấy nó dễ dàng hơn công việc Domenic gợi ý ở trên. – stephenbez

+3

Ngoài ra '--save-dev' cho' devDependencies' (doc trong liên kết đã đề cập) – chakrit

2

Answering của bạn Câu hỏi thứ ba, bạn có thể sử dụng Sweeper vào danh sách phụ thuộc không sử dụng, và họ loại bỏ chúng khỏi package.json của bạn. Chỉ cần npm install -g sweeper thì trên thư mục dự án của bạn, hãy gọi sweeper trên dòng lệnh.

20

Để trả lời các câu hỏi thứ ba:

npm prune

sẽ loại bỏ tất cả các module được cài đặt mà không còn đề cập trong bạn package.json.


Và bạn thực sự đã hỏi 3 câu hỏi riêng biệt.

Các vấn đề liên quan