我有一个JS应用程序,我正在使用许多开源依赖项。我需要创建一个页面,其中包含每个包的许可证信息。我的应用程序目前能够从JSON文件中读取许可证列表并呈现它。我不想手动创建这个文件,因为它很乏味,而且很容易过时。幸运的是,所有的依赖项都列在我的package.json中,所以理论上应该很容易通过编程生成它,不幸的是我还没有找到一种方法。
看起来几乎所有的东西都在其仓库的根目录下有一个“LICENSE”文件,所以如果我有一个gulp脚本可以下载和处理这些文件,那就可以工作了。不幸的是,我一直无法找到一种方法来通过编程查询NPM的仓库地址。如何实现呢?
3条答案
按热度按时间5m1hhzi41#
AFAIK,npm软件包的发行商不需要提供许可证,或者至少不需要以标准的方式提供。
幸运的是,this package能够显示
node_modules
中所有软件包的许可证信息。它也有一个简单的API,所以获取信息并将其显示在网页上应该相当容易。gt0wga4j2#
我终于找到了https://www.npmjs.com/package/get-repository-url,它做了我想要的。
2j4z5cfb3#
我已经这样做了,请随意修改它以适合您的用例(只需在项目目录(
node getLicenses.js > LICENSES.txt
)上使用节点运行它: