Điều gì nên đặt trong trường cấp phép của package.json nếu mã của tôi chỉ được sử dụng bởi công ty tôi làm việc?


103

NPM 2.11.3

Tôi đang xây dựng một thư viện trong Node. Thư viện này chỉ dành cho công ty tôi đang làm việc. Tôi nghĩ rằng điều này có nghĩa là giấy phép là "Không". Nhưng khi tôi npm initmuốn tôi sử dụng Giấy phép SPDX. "Không có" hoặc "Chưa được cấp phép" không phải là các tùy chọn hợp lệ.

npm WARN package.json data_monitoring_api@0.1.0 license should be a valid SPDX license expression

Có một số cuộc thảo luận xung quanh vấn đề này trên trình theo dõi vấn đề NPM GitHub nhưng tôi không thể tìm thấy bất kỳ điều gì giải đáp rõ ràng vấn đề này. Có lẽ NPM không ủng hộ khái niệm này, nhưng điều đó có vẻ kỳ quặc.

Tôi nên đặt gì cho trường này trong trường hợp này? Tôi muốn loại bỏ các cảnh báo npm liên quan đến điều này.

Mặc dù tài liệu nói rằng UNLICENSED là hợp lệ, nó vẫn đưa ra cảnh báo:

$ cat package.json | grep licen
  "license": "UNLICENSED",

$ npm install 
npm WARN package.json data_monitoring_api@0.1.0 license should be a valid SPDX license expression

Tôi nghĩ rằng đây là câu trả lời của bạn: programmers.stackexchange.com/questions/285885/...
— Simon Groenewolt

Có vẻ như nó @SimonGroenewolt, bạn muốn đưa nó vào làm câu trả lời?
— jcollum

Vấn đề NPM thảo luận về chủ đề này: github.com/npm/npm/issues/8918#issuecomment-138059254
— jcollum

Câu trả lời:


91

UNLICENSEDhiện là một tùy chọn cấp phép hợp lệ trong npm. Điều này không giống với "The Unlicense".


có nghĩa là bạn không có bất kỳ quyền nào đối với mã bạn đã viết?
— ses

4
@ses - có vẻ như "UNLICENSED" có nghĩa là, nó không được cấp phép cho người khác sử dụng: "Cuối cùng, nếu bạn không muốn cấp cho người khác quyền sử dụng gói riêng tư hoặc chưa được xuất bản theo bất kỳ điều khoản nào: {" license ":" UNLICENSED " } "(từ docs.npmjs.com/files/package.json )
— Tomer Cagan

2
UNLICENSED không giống như "The Unlicense". Thật khó hiểu. Vui lòng xóa phiếu phản đối của bạn, vì bạn đang đọc sai tài liệu.
— jcollum

2
@jcollum Được. Tôi đồng ý. Rất tiếc! Các quy tắc nói rằng tôi không thể thay đổi trừ khi câu trả lời được chỉnh sửa, đây là một yêu cầu nghiêm ngặt để cho phép điều đúng đắn.
— artziff

1
@artziff đã thay đổi câu trả lời
— jcollum

53

tại thời điểm viết UNLICENSED (xem mẫu mã trong câu hỏi) không phải là một tùy chọn, vui lòng xem câu trả lời jcollumns

Thêm privatevào package.jsonsẽ giúp:

"private": true

9
Điều này không liên quan gì đến giấy phép, bạn có thể muốn xuất bản mô-đun có bản quyền lên sổ đăng ký của riêng mình: stackoverflow.com/questions/7314849/… "Nếu bạn đặt" private ": true trong package.json của mình, thì npm sẽ từ chối để xuất bản nó. Đây là một cách để ngăn chặn việc xuất bản ngẫu nhiên các kho lưu trữ riêng. "
— pdem

tại thời điểm viết bài KHÔNG ĐƯỢC CẤP PHÉP
— Kieran

12

Trên cột thứ hai của bảng được tìm thấy trên liên kết này, https://spdx.org/licenses/ , bạn có thể thấy tất cả các định dạng SPDX khác nhau được sử dụng trongpackage.json .

Tên của cột Identifierchỉ là trong trường hợp. Cảm ơn và hy vọng nó sẽ giúp.


1
Điều này đúng, nhưng xin lưu ý điều này trong liên kết "Danh sách Giấy phép SPDX là danh sách các giấy phép và ngoại lệ thường thấy được sử dụng trong phần mềm hoặc tài liệu cộng tác và phần mềm cộng tác khác và miễn phí.". Điều đó có nghĩa là SPDX không áp dụng cho giấy phép có bản quyền của công ty.
— pdem
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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.