Лицензия «Все права защищены» в package.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отображать ошибки или предупреждения, не помещая туда ссылку на лицензию, которую мы не хотим использовать?

Ответы:


177

В соответствии с новой спецификацией npm вы можете использовать, { "license": "UNLICENSED"} если не хотите предоставлять другим право использовать частный или неопубликованный пакет ни на каких условиях.

Пожалуйста, обратитесь к полной информации здесь

Таким образом, вы можете не получить указанную вами ошибку.


Это, безусловно, отлично подходит для отсутствия лицензии, но не помогает, если вы хотите ссылаться на внешнюю лицензию.
brandonscript

11
На той же странице npmjs: «Также подумайте о настройке« private »: true, чтобы предотвратить случайную публикацию».
bgth

1
список SPDX содержит Unlicenseбез последней буквы D и в смешанном регистре. это то, о чем вы говорите? хотя, глядя на это, не кажется, что это было бы правильно. нет UNLICENSEDв списке
ekkis

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

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

51

Согласно последним документам для package.json :

Если вы используете лицензию, которой не был назначен идентификатор SPDX, или если вы используете индивидуальную лицензию, используйте следующее допустимое выражение SPDX:

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

Затем включите файл с именем <filename>на верхнем уровне пакета.


6

TR; DL: «БЕЗ ЛИЦЕНЗИИ» означает отсутствие лицензии, в то время как «нелицензионная» (без буквы « d» в конце!) Относится к лицензии под названием «Безлицензионная», что совсем другое. Чтобы избежать путаницы, и если вы хотите заявить об авторских правах, вам следует указать кому-нибудь на ваш собственный внутренний файл лицензии, как указано ниже.

-

Определенно НЕ ИСПОЛЬЗУЙТЕ вариант, { "license": "unlicense"}предложенный в ответе, получившем наибольшее количество голосов, если вы хотите четко сообщить, что хотите получить лицензию в стиле претензии об авторских правах.

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

Отрывок из первых двух параграфов лицензии UNLICENSE ясно показывает, что это не имеет никакого отношения к запросу OP о заявлении о нарушении авторских прав:

Это бесплатное и необременительное программное обеспечение, выпущенное в общественное достояние.

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

В верхней части списка ответов указано, что на странице документации по Node утверждается, что использование опции UNLICENSED заключается в том, чтобы вы не предоставляли никаких прав другим лицам:

если вы не хотите предоставлять другим право использовать частный или неопубликованный пакет ни на каких условиях:

Это не кажется безопасным выбором для сохранения ваших прав

  • Я не понимаю, было ли это результатом незнания или злого умысла. Вы можете сделать вывод, что отсутствие дополнительного D означает, что это два совершенно разных термина, но вы не можете предполагать, что другие будут знать это, и когда они будут искать, что такое БЕЗЛИЦЕНЗИРОВАННАЯ лицензия, они могут найти ссылку, которую я нашел.

    {"лицензия": "ПОСМОТРЕТЬ ЛИЦЕНЗИЮ"}

На данный момент это более безопасный ответ.

ПРИМЕЧАНИЕ. Я чувствовал, что было важно сделать это ответом высшего уровня, а не ответом, поскольку ответ, получивший наибольшее количество голосов в настоящее время, имеет большой потенциал для неправильной интерпретации, и это требует видимости.


2
Я не думаю, что это правильно. Список лицензий SPDX действительно включает запись «Нелицензия», которую вы нашли, и она отличается от «НЕЛИЦЕНЗИРОВАННОЙ», которая не дает никаких прав. spdx.org/licenses/Unlicense.html Таким образом, хотя орфографическая ошибка будет иметь серьезные последствия («Безлицензия» означает неограниченную лицензию, а «НЕЛИЦЕНЗИРОВАННАЯ» означает сохранение всех прав), двусмысленности нет. В спецификации package.json четко указано, что «UNLICENSED» не предоставляет никаких прав «ни на каких условиях».
wberry

1
Тем не менее, я думаю, что ваш ответ служит хорошей целью показать, насколько близки эти два варианта друг к другу. Это то, чего стоит остерегаться. Добро пожаловать в Stack Overflow!
wberry

1
Спасибо, wberry, я не видел определения SPDX для "Безлицензии", это хороший аргумент.
Карл Кидвелл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.