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许可的话,你的项目又不开源的话,建议换成其他能实现类似功能的模块或者干脆自己手写轮子吧。
违反许可证的要求,虽然项目能跑起来,但是会被开源社区唾弃,而这将成为开发人员身上难以洗刷的历史污点。

相关推荐

  1. npm许可证检查

    2024-05-03 10:44:04       30 阅读
  2. EDA 许可证调度

    2024-05-03 10:44:04       41 阅读
  3. AutoCAD许可证服务器

    2024-05-03 10:44:04       37 阅读
  4. 软件许可证管理?

    2024-05-03 10:44:04       27 阅读
  5. ICP经营许可证

    2024-05-03 10:44:04       25 阅读
  6. Unity Hub 无法激活许可证

    2024-05-03 10:44:04       61 阅读
  7. 什么是MATLAB许可证协议书

    2024-05-03 10:44:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-03 10:44:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-03 10:44:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-03 10:44:04       87 阅读
  4. Python语言-面向对象

    2024-05-03 10:44:04       96 阅读

热门阅读

  1. C++@vscode配置C++开发环境常见问题和实践经验

    2024-05-03 10:44:04       38 阅读
  2. 什么是dreamfusion

    2024-05-03 10:44:04       29 阅读
  3. 程序员增肌指南

    2024-05-03 10:44:04       27 阅读
  4. 大模型(LLM)的推理加速

    2024-05-03 10:44:04       32 阅读
  5. ubuntu重安装libc

    2024-05-03 10:44:04       35 阅读
  6. Spring 事务失效的几种情况

    2024-05-03 10:44:04       31 阅读
  7. Vue 基础汇总

    2024-05-03 10:44:04       26 阅读
  8. Map实现(2)| LinkedHashMap

    2024-05-03 10:44:04       29 阅读
  9. 生物样品培养

    2024-05-03 10:44:04       33 阅读