当前位置:   article > 正文

npm许可证检查

npm许可证检查

node开发做项目,很少有人去纯手工打造,大多是采用一些开源框架,还会使用前人做好的轮子,所以咱们的项目文件里,除了自己编写的js文件,还会带有一些拿来主义的npm模块,从其他开源发布网站上下载的js等文件也算在内吧。
我们作为开源软件的受益者,即使可能还不能算开源的贡献者,遵守开源软件许可证协议是最基本要求,也是道德底线。开源软件的许可有很多种,公认的可能都超过80种,比较常见的MIT,BSD,Apache,GPL,Mozilla等,有些是要求如果你的项目包含了使用了该许可的软件,那么你的项目也要开源,比如GPL许可,所以GPL也被称为带有传染性,如果你的项目现在不适合开源,不想开源,那么就不要在项目里包含GPL许可的软件,其他许可还好了,大多没有要求开源,你可以认为是比较友好和宽松,没有强制开源的要求。
如果项目可以开源,希望所有人都能受益,开源社区繁荣,项目开源并采用GPL许可也挺好,没有开源打算的,那从一开始构建项目,就要回避GPL的npm模块,如果需要一个有成熟的框架,不用手工重新发明轮子,那么应该在可选的范围里有意识筛去GPL的,选择对闭源友好的许可证的框架。
那怎么识别这些开源的许可呢?
1.下载前看,开源软件会在官网和软件介绍的醒目位置标识其使用的开源许可证。
2.已经下载到本地了的话,可以在其node_modules目录下的软件模块的文件夹下的package.json文件里也会在"license"字段标识其许可证。
3.之前没有太注意,正式发布前检查,这时项目可能已经有很多依赖包了,node_modules下可能有很多文件夹了,一一看来检查效率太低,这时推荐一个npm工具:license-report 推荐安装全局生效

npm install -g license-report
  • 1

在项目目录下,执行

license-report --output=csv --csvHeaders > projnpmlics.csv
  • 1

可以生成当前项目依赖包的许可证清单,这样你可以对依赖包的许可有了全面详细的报告。如果包含GPL许可的话,你的项目又不开源的话,建议换成其他能实现类似功能的模块或者干脆自己手写轮子吧。
违反许可证的要求,虽然项目能跑起来,但是会被开源社区唾弃,而这将成为开发人员身上难以洗刷的历史污点。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/531116
推荐阅读
相关标签
  

闽ICP备14008679号