javascript缩小删除许可证?

mko*_*yak 15 javascript minify

Javascript缩小通常会从源中删除所有注释.这意味着还会删除许可证信息.

如果我经营一个大型网站,并且我想遵守许可证,这是否意味着我不能使用自动缩小?没有选择"保留第一条评论,但不保留其他评论"对吗?

我问,因为一个相当大的公司使用了我编写的一些代码而不包括我的(麻省理工学院)许可证,但在我感到很恼火之前,我想把自己放在自己的位置.

编辑:
作为作者,我似乎有责任以这种方式评论许可证(见答案),它在缩小过程中不会被删除.我可以先做这件事,然后如果我的许可证仍被删除则引发臭味

fou*_*ama 9

这是"依赖"的经典案例.

这取决于缩小器.例如,UglifyJS将保留在文件的初始注释块中,除非您明确告诉它不要使用该-nc标志.其他人(如Google的Closure Compiler)寻找特殊注释(例如,@license@preserve).有些人尊重"吵闹"的评论(例如/*! ... */),而有些人却没有.

这取决于你如何缩小.一些组织正在积极地缩小和连接所有内容以挤出每个字节.其他人则在源控制中添加许可证,并在缩小期间"将其留在"中.其他人在将所有内容连接在一起应用许可证文件.

某些地方可以很容易地在生产版本中删除许可证,特别是如果他们积极地将他们使用的每个库连接到一个JS文件中.他们甚至可能都不知道他们正在这样做.这里你最好的选择可能就是伸出援手,要求他们确保他们尊重许可条款,并在那里留下许可文本 - 他们甚至可能没有意识到他们正在这样做.


Zah*_*med 7

没有!如果您使用以下评论样式与YUIcompressor:

/*!
 *
 */
Run Code Online (Sandbox Code Playgroud)

感叹号告诉压缩器保留评论.

以下是这些评论的文件说明


Jam*_*ice 6

谷歌闭包编译器支持@preserve@license注释,告诉它保留评论:

/**
 * @preserve Copyright 2009 SomeThirdParty.
 * Here is the full license text and copyright
 * notice for this file. Note that the notice can span several
 * lines and is only terminated by the closing star and slash:
 */
Run Code Online (Sandbox Code Playgroud)

UglifyJS支持--comments接受正则表达式的命令行选项.任何与正则表达式匹配的注释都将保留在输出中.

其他答案表明,其他缩小器也支持此功能.您必须阅读所选缩小器的文档,以确定在您自己的情况下使用的确切语法/技术.