npm WARN gói.json: Không có trường kho lưu trữ


810

Tôi đã cài đặt Express.js bằng lệnh sau:

sudo npm install -g express

Tôi nhận được các cảnh báo sau:

npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.

Tôi mới biết đến Node.js và Express.js. Tại sao tôi có những cảnh báo trên? Tôi có nên lo lắng không?


19
Khi nhìn thấy câu hỏi này một năm sau, tôi nhận ra rằng tôi đã xóa bỏ tất cả các cảnh báo này mỗi khi tôi cài đặt các gói npm. Đây là điều mà các nhà phát triển gói có thể nên cẩn thận hơn một chút.
nha

@nha yeah, tôi thường thấy những cảnh báo đó khi thực hiện một số thao tác npm và sửa chúng nếu nó nằm trong gói tôi đang phát triển.
gustavohenke

29
đối với repos riêng, chỉ cần thêm "private": truevào pack.json
chovy

Câu trả lời:


1280

Đây chỉ là một kiểm tra kể từ NPM v1.2.20, họ báo cáo đây là một cảnh báo.

Tuy nhiên, đừng lo lắng, có sooooooo nhiều gói mà vẫn không có repositorylĩnh vực trong họ package.json. Các lĩnh vực được sử dụng cho mục đích thông tin.

Trong trường hợp bạn là tác giả gói, hãy đặt cái repositorycủa bạn vào package.json, như thế này:

"repository": {
  "type": "git",
  "url": "git://github.com/username/repository.git"
}

Đọc thêm về repositorytrường và xem lỗi đã đăng nhập để biết thêm chi tiết.


Ngoài ra, như được báo cáo ban đầu bởi @dan_nl , bạn có thể đặt privatekhóa trong package.json.
Điều này không chỉ ngăn bạn vô tình chạy npm publishtrong ứng dụng của bạn mà còn ngăn NPM in các cảnh báo liên quan đến package.jsoncác vấn đề.

{
  "name": "my-super-amazing-app",
  "version": "1.0.0",
  "private": true
}

20
Vài tháng sau câu trả lời của tôi và tôi dường như không có vấn đề gì cho đến nay :)
gustavohenke

2
NPM 2.14 hiện in lỗi khi repositorytrống và privateđược đặt thành đúng.
Blaise

9
@Blaise, tôi không nhận được bất kỳ cảnh báo nào trong NPM 3.3.3 bằng cách sử dụngprivate: true
gustavohenke

3
Câu hỏi, tại sao không phải là "riêng tư" mặc định, ý tôi là có bao nhiêu dự án npm được tạo ra so với bao nhiêu được công bố thực sự, có thực sự có nhiều mã thư viện hơn mã người dùng không?
Felype

1
Cảm ơn vì sự riêng tư: đúng, bằng cách nào đó, tôi đã bỏ lỡ điều này trong suốt những năm qua.
Jeremy Chone

394

bạn cũng có thể đánh dấu ứng dụng là riêng tư nếu bạn không có kế hoạch đưa nó vào một kho lưu trữ thực tế.

{
  "name": "my-application",
  "version": "0.0.1",
  "private": true
}

51

Như dan_nl đã nêu, bạn có thể thêm một kho lưu trữ giả riêng tư trong pack.json. Bạn thậm chí không cần tên và phiên bản cho nó:

{
  ...,
  "repository": {
    "private": true
  }
}

Cập nhật: Tính năng này không có giấy tờ và có thể không hoạt động. Chọn tùy chọn sau.

Vẫn tốt hơn: Đặt privatecờ trực tiếp. Bằng cách này, npm không yêu cầu tệp README:

{
  "name": ...,
  "description": ...,
  "version": ...,
  "private": true
}

Đã thông báo về một người dùng khác về câu trả lời này. Có vẻ như repository.privatehành vi không được ghi lại (hoặc nó không còn được chấp nhận), theo docs.npmjs.com/files/package.json .
gustavohenke

1
@gustavohenke: Cảm ơn bạn, có vẻ như bạn đúng - privatevì tài sản cấp cao nhất là lựa chọn tốt hơn. Cập nhật câu trả lời của tôi.
wortwart

46

Nếu bạn nhận được điều này từ chính bạn package.json, chỉ cần thêm repositorytrường vào nó. (sử dụng liên kết đến kho lưu trữ thực tế của bạn):

"repository" : { 
   "type" : "git",
   "url" : "https://github.com/npm/npm.git"
 }

Cảm ơn bạn đã làm rõ để sử dụng liên kết tệp dự án github đầy đủ (bao gồm http://hoặc https://!
twknab

9

Bạn đã chạy npm initchưa Lệnh đó đưa bạn đi qua mọi thứ ...


9

Trong Simple- pack.json của dự án của bạn không có thuộc tính của kho lưu trữ, bạn phải thêm nó vào,

và bạn phải thêm kho lưu trữ trong gói.json của bạn như bên dưới

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

và hãy để tôi giải thích theo kịch bản của bạn

bạn phải thêm trường lưu trữ giống như bên dưới

  "repository" : {     
     "type" : "git",
      "url" : "http://github.com/npm/express.git" 
   }

7

Để tránh những cảnh báo như:

npm WARN project.com@1.0.0 No repository field.

Bạn phải xác định kho lưu trữ trong gói.j.j dự án của bạn. Trong trường hợp khi bạn đang phát triển mà không xuất bản lên kho lưu trữ, bạn có thể đặt "private": truetrong pack.json

Thí dụ:

{
  "name": "test.loc",
  "version": "1.0.0",
  "private": true,
  ...
  "license": "ISC"
}

Tài liệu NPM về điều này: https://docs.npmjs.com/files/package.json


6

Nếu bạn không muốn chỉ định một kho lưu trữ, bạn có thể thêm các dòng sau vào package.jsontệp:

"description":"",
"version":"0.0.1",
"private":true,

Điều đó làm việc cho tôi.
Bằng cách thêm private, bạn không cần phải liên kết với một repo.


4

điều này sẽ giúp tất cả các bạn tìm thấy chi tiết chính xác của bạn sử dụng

npm ls dist-tag

sau đó sẽ hiển thị thông tin chính xác để bạn không đoán vị trí tệp phiên bản, v.v.

thưởng thức :)


1
Tôi nhận được phản hồi là '--empty
MJ

3

Có, có lẽ bạn có thể / tạo lại một cái bằng cách bao gồm -fở cuối lệnh của bạn


1

sử dụng npm install -g angular-cli thay vì
npm install -g @ nagular / cli để cài đặt Angular

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.