Ліцензія "Усі права захищені" в пакет.json


111

У мене є невеликий проект node.js, який є внутрішньою компанією, і він не буде випущений публічно або поділитися з третіми сторонами. Це, безумовно, не буде надано жодним сховищам публічних пакетів.

Але при запуску npm installя завжди отримую таку помилку:

npm WARN package.json <<myproject>>@0.1.0 license should be a valid SPDX license expression

Бажана ліцензія: "авторське право від нас і всі права захищені". У списку ліцензій на SPDX я не зміг знайти нічого, що було б застосованим . Пропозиція у цій відповіді також не працює. Якщо я просто видаляю licenseполе зі package.jsonзмін помилки на no license field.

Як я можу npm installне показувати помилок або попереджень, не вводячи туди посилання ліцензії, яке ми не хочемо використовувати?

Відповіді:


176

Відповідно до нової специфікації npm, яку ви можете використовувати { "license": "UNLICENSED"} якщо не бажаєте надавати іншим право користуватися приватним або неопублікованим пакетом за будь-яких умов.

Будь ласка, ознайомтеся з усіма деталями тут

Тож ви не зможете отримати помилку, про яку ви згадали.


Це, безумовно, відмінно підходить для відсутності ліцензії, але не допомагає, якщо ви хочете посилатися на зовнішню ліцензію.
фірмовий сценарій

11
З тієї ж сторінки npmjs "Подумайте також про налаштування" private ": true, щоб запобігти випадковій публікації."
bgth

1
список SPDX містить Unlicenseбез остаточного D і в змішаному регістрі. це те, про що ти маєш на увазі? хоча дивлячись на це, не здається, що це було б правильним. немає UNLICENSEDв списку
НЕ ekkis

@ekkis, документація package.jsonсправді описується UNLICENSEDяк дійсне значення (пор. docs.npmjs.com/files/package.json#license ).
Фредерік Краутвальд

10
@ekkis Unlicense - це повна протилежність { "license": "UNLICENSED" } spdx.org/licenses/Unlicense . (Я розумію, що ви подивилися на ліцензію і побачили, що це неправильно, я просто подумав, що це потрібно прописати тут, про всяк випадок)
JollyJoker

51

Відповідно до останніх документів для package.json :

Якщо ви використовуєте ліцензію, якій не було призначено ідентифікатор SPDX, або якщо ви користуєтеся власною ліцензією, використовуйте такий дійсний вираз SPDX:

{ "license" : "SEE LICENSE IN <filename>" }

Потім додайте файл, названий <filename>на верхньому рівні пакету.


5

TR; DL: "UNLICENSED" означає не ліцензовану, тоді як "unliclicence" (немає "d" в кінці!) Посилається на ліцензію під назвою "The Unlicensed", яка є щось зовсім інше. Щоб уникнути плутанини та якщо ви хочете стверджувати авторське право, вам слід вказати комусь на ваш власний внутрішній файл ліцензії, наведений нижче.

-

Однозначно НЕ використовуйте те, { "license": "unlicense"}як пропонується у відповіді вгорі, якщо ви бажаєте чітко повідомити, що ви хочете мати ліцензію на стиль авторського права.

https://choosealicense.com/licenses/unlicense/

З кліпу з перших двох пунктів ліцензії UNLICENSE чітко видно, що це взагалі не має відношення до прохання ОП щодо претензії на авторське право:

Це безкоштовне та необроблене програмне забезпечення, що випускається у загальнодоступне надбання.

Кожен може вільно копіювати, змінювати, публікувати, використовувати, компілювати, продавати чи розповсюджувати це програмне забезпечення у формі вихідного коду або у вигляді складеного двійкового коду з будь-якою метою, комерційною чи некомерційною та будь-якими способами.

На початок голосуючих відповідей на сторінці документації з Node заявляється, що використання НЕЗАЛЕЖЕНОГО варіанту полягає в тому, щоб зробити це, щоб ви не надавали жодних прав іншим:

якщо ви не бажаєте надавати іншим право користуватися приватним або неопублікованим пакетом за будь-яких умов:

Це не є фактично безпечним вибором для збереження своїх прав

  • Мені не ясно, чи це було наслідком незнання чи поганого наміру. Ви можете зробити висновок, що відсутність додаткового D означає, що це два абсолютно різні терміни, - але ви не можете припустити, що інші будуть знати, що і коли вони шукатимуть, що це НЕЗАЛЕЖНА ліцензія, вони можуть отримати посилання, яке я знайшов.

    {"ліцензія": "ВИДІТЬ ЛІЦЕНЗІЮ"}

Наразі безпечніша відповідь.

ПРИМІТКА. Я вважав, що важливо зробити цю відповідь на найвищому рівні, а не відповідь, оскільки відповідь, яка проголосувала вище, на даний момент має великий потенціал для неправильного тлумачення, і для цього потрібна видимість.


2
Я не думаю, що це правильно. У списку ліцензій SPDX входить запис, який ви знайшли "Неліцензійне", і він відрізняється від "Недозволеного", який не надає прав. spdx.org/licenses/Unlicense.html Оскільки помилка написання буде дуже наслідковою ("Unlicense" є необмеженою ліцензією, а "UNLICENSED" зберігає всі права), неоднозначності немає. Специфікація package.json чітко зазначає, що "UNLICENSED" не надає жодних прав "за будь-яких умов".
wberry

1
Незважаючи на це, я думаю, що ваша відповідь служить гарною метою вказувати, наскільки ці два варіанти близькі один одному. Це на що слідкувати. Ласкаво просимо до переповнення стека!
wberry

1
Дякую wberry, я не побачив визначення SPDX для "Неліцензуючого", що було гарним викликом.
Карл Кідвелл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.