Webpack捆绑许可证合规性?

时间:2017-05-16 13:21:21

标签: javascript node.js npm webpack webpack-2

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

要明确配置,请在您的webpack配置中包含:

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

答案 1 :(得分:1)

如果在devDependenciesConfigured下定义了依赖项和由此产生的可传递依赖项,则对于以下问题没有帮助:该依赖项是否包含在webpack构建输出中。尝试webpack-license-plugin,它可能会帮助您解决问题。

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