当前位置: 首页 > news >正文

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

在项目目录下,执行

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

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

http://www.lryc.cn/news/341515.html

相关文章:

  • 利用AI大模型和Echarts 绘制知识图谱,实现文本信息提取和图数据库操作
  • Telegram电报+86手机接收验证码及账号解封方法
  • 迅饶科技 X2Modbus 网关 AddUser 任意用户添加漏洞复现
  • 基于YOLOv8+PyQt5复杂场景下船舶目标检测系统
  • Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“
  • 力扣经典150题第五十五题:逆波兰表达式求值
  • C#队列(Queue)的基本使用
  • 预训练模型介绍
  • Pandas入门篇(三)-------数据可视化篇3(seaborn篇)(pandas完结撒花!!!)
  • SpringBoot中阿里OSS简单使用
  • websocket简介
  • Linux的shell外壳
  • 支付宝支付流程
  • 打招呼得不到回复,跟头像还有关系?
  • 【网络原理】HTTPS 的工作过程
  • Python语言在地球科学中地理、气象、气候变化、水文、生态、传感器等数据可视化到常见数据分析方法的使用
  • 【JVM】class文件格式,JVM加载class文件流程,JVM运行时内存区域,对象分配内存流程
  • GPU系列(六)-NVIDIA GPU 驱动安装
  • 第十五届蓝桥杯总结
  • Linux驱动开发——(八)Linux异步通知
  • Docker知识点汇总表格总结
  • Golang中实现调用Windows API向指定目标发送ARP请求
  • 这是一个简单的照明材料网站,后续还会更新
  • 【设计模式】之模板方法模式
  • 【系统架构师】-选择题(十一)
  • 前端开发攻略---介绍HTML中的<dialog>标签,浏览器的原生弹框。
  • 让外贸业绩翻倍的销售话术分享
  • 观测与预测差值自动变化系统噪声Q的自适应UKF(AUKF_Q)MATLAB编写
  • 虚拟数据中心
  • 解决Blender导出FBX文件到Unity坐标轴错误的问题