package.json中的“保留所有权利”许可证


111

我有一个小型的node.js项目,它在公司内部,不会公开发布或与第三方共享。它当然不会贡献给任何公共软件包存储库。

但是,当我运行时npm install,总是会出现以下错误:

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

所需的许可证为:“我们的版权并保留所有权利”。我在SPDX许可证列表中找不到任何适用的内容此答案中的建议也不起作用。如果我只是licensepackage.json错误中删除该字段,则更改为no license field

npm install如果不在其中添加我们不想使用的许可证参考,我如何不显示任何错误或警告?

Answers:


176

根据新的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)。
Frederik Krautwald '17

10
@ekkis Unlicense与{ "license": "UNLICENSED" } spdx.org/licenses/Unlicense完全相反。(我意识到您已经查看了许可证,发现它不正确,我只是认为这需要在此处阐明,以防万一)
JollyJoker

51

根据package.json的最新文档

如果使用的许可证尚未分配SPDX标识符,或者使用的是自定义许可证,请使用以下有效的SPDX表达式:

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

然后<filename>在包的顶层添加一个名为的文件。


5

TR; DL:“ 未许可 ”是指未许可,而“未许可”(末尾没有“ d”!)是指名为“未许可”的许可。这有很大的不同。为避免混淆,如果要主张版权,则应按照以下说明将某人指向您自己的内部许可文件。

-

绝对不要使用 { "license": "unlicense"}如果您想明确表示希望拥有版权声明样式许可证,请投票结果最高的答案中的建议。

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

UNLICENSE许可证的前两段中的一段剪辑清楚地表明,这与OP的版权要求完全没有关系:

这是发布到公共领域的免费且不受限制的软件。

任何人都可以以任何目的,商业目的或非商业目的,以源代码形式或作为已编译的二进制文件自由地复制,修改,发布,使用,编译,出售或分发此软件。

在获得最高投票的答案之前,Node文档页面声称使用UNLICENSED选项是为了使您不会向他人授予任何权利:

如果您不希望以任何条款授予他人使用私有或未发布软件包的权利:

保留您的权利似乎不是实际的安全选择

  • 我不清楚这是否是由于无知或恶意所致。您可以推断出缺少多余的D意味着这是两个完全不同的术语-但您不能假设其他人会知道这一点,并且当他们搜索UNLICENSED许可证的内容时,他们可能会获得我找到的链接。

    {“ license”:“查看许可证,”}

目前是更安全的答案。

注意:我认为将其作为最高级别的答案而不是答复是很重要的,因为目前投票最多的答案很可能会被误解,这需要可见性。


2
我认为这是不正确的。SPDX许可证列表确实包含您找到的“ The Unlicense”条目,它与不授予任何权利的“ UNLICENSED”不同。 spdx.org/licenses/Unlicense.html 因此,尽管拼写错误的后果非常严重(“ Unlicense”是不受限制的许可证,“ UNLICENSED”保留所有权利),但没有歧义。package.json规范明确指出“未授权”不授予“任何条款”的任何权利。
wberry

1
即使这样,我认为您的答案还是指出两个选择之间的距离的一个很好的目的。这是要提防的东西。欢迎使用Stack Overflow!
wberry

1
谢谢wberry,我没有看到SPDX的“ The Unlicense”定义,这是一个很好的呼吁。
卡尔·基德威尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.