如果我的代码仅供我工作的公司使用,我应该在 package.json 的许可字段中输入啥?

Posted

技术标签:

【中文标题】如果我的代码仅供我工作的公司使用,我应该在 package.json 的许可字段中输入啥?【英文标题】:What should I put in the license field of package.json if my code is only for use by the company I work for?如果我的代码仅供我工作的公司使用,我应该在 package.json 的许可字段中输入什么? 【发布时间】:2015-11-19 19:00:38 【问题描述】:

NPM 2.11.3

我正在 Node.js 中构建一个库。这个库仅供我目前工作的公司使用。我认为这意味着许可证是“无”。但是当我npm init 时,它希望我使用 SPDX 许可证。 “无”或“未经许可”不是有效选项。

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

在 NPM GitHub 问题跟踪器上对此进行了一些讨论,但我找不到任何可以明确回答此问题的内容。也许 NPM 不支持这个概念,但这似乎很奇怪。

在这种情况下我应该为这个字段输入什么?我想摆脱与此相关的 npm 警告。

虽然文档说 UNLICENSED 是有效的,但它仍然给出警告:

$ 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

【问题讨论】:

我想这就是你的答案:programmers.stackexchange.com/questions/285885/… 看起来像@SimonGroenewolt,想把它作为答案吗? NPM issue 讨论这个话题:github.com/npm/npm/issues/8918#issuecomment-138059254 【参考方案1】:

UNLICENSED is now a valid license option in npm.表示代码没有申请license。

不要将其与被混淆地称为"The Unlicense" 的许可证相混淆。

【讨论】:

好编辑@Flimm【参考方案2】:

在此链接上的表格的第二列https://spdx.org/licenses/,您可以看到package.json 中使用的所有不同的SPDX 格式。

列的名称是Identifier,以防万一。谢谢,希望对您有所帮助。

【讨论】:

这是正确的,但请在链接“SPDX 许可证列表是免费和开源以及其他协作软件或文档中使用的常见许可证和例外的列表。”链接中注意这一点。这意味着 SPDX 不适用于公司版权许可。【参考方案3】:

在编写 UNLICENSED 时(请参阅 问题)不是一个选项,请参阅jcollumns answer

private 添加到package.json 会有所帮助:

"private": true

【讨论】:

这和license无关,你可能想发布一个有版权的模块到你自己的registry:***.com/questions/7314849/… "如果你在你的package.json中设置了"private": true,那么npm将拒绝发布它。这是一种防止意外发布私有存储库的方法。" 在撰写本文时未经许可 - (请参阅问题中的代码示例)不是一个选项,请参阅jcollumns answer 这曾经是技术上正确的答案,因为节点团队似乎不明白有时你需要“发布”一些不是免费软件的东西。添加 UNLICENSED 后,这不再正确。 这篇文章没有回答这个问题。我编辑了帖子以使其回答问题并解释 private 的实际作用(与许可无关),但不幸的是我的编辑被退回。【参考方案4】:

对我来说,我在代码中放入的任何许可证都不起作用。但后来我发现,父目录中有一个无效的 package.json。删除后,这解决了所有问题。

【讨论】:

很奇怪,npm 会读取父目录中的 package.json。这里似乎有些东西坏了。 我实际上刚刚遇到了同样的问题。感谢您的修复。

以上是关于如果我的代码仅供我工作的公司使用,我应该在 package.json 的许可字段中输入啥?的主要内容,如果未能解决你的问题,请参考以下文章

Google SAML 可以通过 HTTP 工作,还是专门用于 HTTPS?

Google地方样式自动完成不起作用

你如何在 Mercurial 上“回滚”最后一次提交?

ClearCase:主副本和当前副本有啥区别?

如何让我的 python 代码从我的 pac man 游戏中删除药丸?

Android 到 PHP API 安全性