Webpack 捆绑许可证合规性?

Posted

技术标签:

【中文标题】Webpack 捆绑许可证合规性?【英文标题】:Webpack bundle license compliance? 【发布时间】:2017-10-15 14:37:04 【问题描述】:

有没有办法使用 webpack 执行许可证合规性检查?理想情况下,webpack 构建的所有模块的许可头都包含在最终的输出文件中,但是我们如何检查是否是这种情况?

还有可以检测许可证兼容性冲突的插件吗?

【问题讨论】:

【参考方案1】:

我不是律师,所以这不是法律建议。

您似乎正在尝试解决两个不同的问题:(1) 了解通过 npm 安装的软件包的合规义务,(2) 履行任何义务(例如,在 webpack 的输出中包含许可证)。

对于 (1) tldrlegal 是一个有用的工具,它将打印义务的高级摘要。由于义务可能包括“在所有广告材料中显示确认”之类的要求,因此很难将合规性检查归结为构建过程中的一个步骤(大概是 webpack 发挥作用的时候)。看起来this library 可能有助于兼容性方面。

(2) 为了遵守在源代码副本中分发许可证等义务,webpack 的 Uglify 插件默认执行此操作。 package.json 的dependencies 中列出的包的许可证默认包含在构建via the comments option 中。 (It looks like this may be changing for webpack v4.) 请注意,devDependencies 中列出的依赖项许可证不包含在构建文件中。

要显式配置它,在你的 webpack 配置中包括:

new webpack.optimize.UglifyJsPlugin(
  comments: /^\**!|@preserve|@license/,
)

【讨论】:

【参考方案2】:

如果在dependenciesdevDependencies 下定义了一个依赖项和由此产生的传递依赖项,则该依赖项是否包含在 webpack 构建输出中无助于解决这个问题。试试webpack-license-plugin,它可能会帮助你解决问题。

如果您有任何问题,请随时提问。我是模块的维护者,所以我可以提供帮助!

【讨论】:

哇看起来真令人印象深刻 - 感谢您的提醒!

以上是关于Webpack 捆绑许可证合规性?的主要内容,如果未能解决你的问题,请参考以下文章

盘点现有开源软件许可合规工具

TITAN Haptics推出捆绑了Immersion许可的下一代触觉马达

开源合规实践避坑指南

开源合规实践避坑指南

开源合规实践避坑指南

开源合规实践避坑指南