【问题标题】:Custom license url in package.jsonpackage.json 中的自定义许可证 URL
【发布时间】:2015-08-16 06:13:04
【问题描述】:

我很想知道是否有办法在 NPM 的 package.json 文件中传递自定义许可证 URL。

我试过了:

{
  "license": {"name": "foo", "url": "http://example.com" }
}

好像this format is now deprecated:

// Not valid metadata
{ "license" :
  { "type" : "ISC"
  , "url" : "http://opensource.org/licenses/ISC"
  }
}

还有其他方法可以在 package.json 中传递许可证 url 吗?

【问题讨论】:

  • 看来不是这样。我实际上已经和一些 npm 的人谈过,他们似乎对支持 url 的想法并不持开放态度。相反,他们希望您仅使用许可(类型)并将您的版权信息放入自述文件中。
  • @mscdex 但是许可证链接将是 404:example
  • 我的意思是你必须使用"license": "identifier",其中identifierhere中的一个。
  • @mscdex 没错,但我的许可证未在此处列出。 :)
  • 我认为你不走运,除非你能够说服 spdx.org 上的人添加许可证,或者你可以说服 npm 人员支持自定义许可证(我没有祝你好运)。

标签: json node.js npm package.json


【解决方案1】:

似乎还有另一种/新的方法可以做到这一点。最近我的 npm 包在我使用时开始抱怨:

{ "license" : "LicenseRef-LICENSE" }

我现在宁愿使用npm docs 中记录的符号:

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

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

然后在包的顶层包含一个名为 filename 的文件。

【讨论】:

    【解决方案2】:

    在链接的同一页面上如下:

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

    { "license" : "LicenseRef-LICENSE" }

    然后在包的顶层包含一个 LICENSE 文件。

    同样,您只需在您的许可证中指定您的 URL 和/或将您现有的许可证复制/粘贴到该位置。

    【讨论】:

    • 哎呀,我怎么没看到?但是……这对你有用吗?我tested it out -- 创建了一个package.json 和一个LICENSE 文件。不过,当我点击它时,我会被重定向到this page
    • 如果我不得不猜测,npmjs.com 只是硬编码到一个相对路径,假设如果它有效,那里就会有一个页面,显然情况并非如此。根据他们自己的文档,这是有效的(并将验证),但是,可能值得向他们提及。
    【解决方案3】:
    {
      "name": "fcc-learn-npm-package-json",
      "version": "1.0",
      "dependencies": {
        "express": "^4.14.0"
      },
      "main": "server.js",
      "scripts": {
        "start": "node server.js"
      },
      "engines": {
        "node": "8.11.2"
      },
      "repository": {
        "type": "git",
        "url": "https://idontknow/todo.git"
      },
      "author": "Ganesh",
      "description": "This is an example project",
      "keywords": [
        "freecodecamp",
        "example"
      ],
      "license": "MIT",
    }
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2019-09-01
    • 1970-01-01
    • 2022-03-01
    • 2015-01-28
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    相关资源
    最近更新 更多