删除许可证的javascript缩小?
Javascript缩小通常会从源代码中删除所有注释。这意味着许可证信息也将被删除 如果我运行一个大型站点,并且我想遵守许可证,这是否意味着我不能使用自动缩小?没有“保留第一条评论,但不保留其他评论”的选项 ”“是吗 我这样问是因为一家相当大的公司使用了我写的一些代码,但没有包括我的(麻省理工)许可证,但在我生气之前,我想设身处地为他们着想 编辑:删除许可证的javascript缩小?,javascript,minify,Javascript,Minify,Javascript缩小通常会从源代码中删除所有注释。这意味着许可证信息也将被删除 如果我运行一个大型站点,并且我想遵守许可证,这是否意味着我不能使用自动缩小?没有“保留第一条评论,但不保留其他评论”的选项 ”“是吗 我这样问是因为一家相当大的公司使用了我写的一些代码,但没有包括我的(麻省理工)许可证,但在我生气之前,我想设身处地为他们着想 编辑: 作为作者,我的责任似乎在于以这样一种方式评论许可证(参见答案),即在缩小过程中它不会被删除。我可以先这么做,然后如果我的许可证仍然被删除,我会大发雷
作为作者,我的责任似乎在于以这样一种方式评论许可证(参见答案),即在缩小过程中它不会被删除。我可以先这么做,然后如果我的许可证仍然被删除,我会大发雷霆!如果在YUIcompressor中使用以下注释样式:
/*!
*
*/
感叹号告诉压缩器保留注释
谷歌闭包编译器支持告诉它保留注释:
/**
* @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:
*/
支持接受正则表达式的命令行选项--comments
。任何与正则表达式匹配的注释都将保留在输出中
其他答案表明,其他迷你手机也支持此功能。您必须阅读所选缩微器的文档,以确定在您自己的案例中使用的确切语法/技术。您可以使用node的r.js 这里对其进行了描述
也可以保留许可证注释。可以保留许可证信息。例如,YUI压缩机可以做到: 以/*开头的C风格注释!它们被保存了下来。这对于包含版权/许可证信息的注释非常有用
()这取决于您的缩小工具
/** Notice
*
*
**/
或
查看您的工具文档这是“视情况而定”的经典案例
这取决于缩微器。例如,UglifyJS将保留在文件的初始注释块中,除非您明确告诉它不要使用-nc
标志。其他人(如谷歌的闭包编译器)寻找特殊的注释(例如,@license
或@preserve
)。有些人尊重“大声”的评论(例如,/*!…*/
),而其他人则不尊重
这取决于缩小的方式。一些组织正在积极缩小并连接所有内容,以挤出每个字节。其他人则在源代码管理中添加许可证,并在缩小时“保留它们”。其他人则在将所有内容连接在一起后应用许可证文件
对于某些地方来说,在他们的生产版本中删除许可证是很容易的,特别是如果他们积极地将他们使用的每个库连接到一个JS文件中。他们甚至可能不知道自己在做这件事。在这里,你最好的办法可能是联系他们,让他们确保他们遵守许可条款,并将许可文本留在那里——他们甚至可能没有意识到他们正在这样做。这取决于使用的缩小工具/API。尽管如果工具支持,重要注释可以保留在缩微器输出中。以下是重要评论的格式
/*!
* Your comment...1
* ......
* Your comment...n
*/
以下简单的在线工具可用于缩小javascript代码,我发现它保留了重要的注释:
几年后,但是 除了消除死代码的小型化程序外,您可以将对许可证的引用编码为非带名称空间前缀的注释 对于JS之类的
var NS_LICENSE_URL = "Cool Inc. - Apache 2.0 - http://github.com/nfisher/cooljs/LICENSE.txt";
.ns_license_url {
content: "Cool Inc. - Apache 2.0 - http://github.com/nfisher/cooljs/LICENSE.txt";
}
对于CSS之类的东西
var NS_LICENSE_URL = "Cool Inc. - Apache 2.0 - http://github.com/nfisher/cooljs/LICENSE.txt";
.ns_license_url {
content: "Cool Inc. - Apache 2.0 - http://github.com/nfisher/cooljs/LICENSE.txt";
}
或者,您可以在中复制整个许可证。还可以为JS添加一个console.out以将其打印到控制台,但这可能超出了范围。但作为开发人员,您无法控制或了解使用您的代码的人所使用的工具。格式化示例会有所帮助。我在注释的末尾有
@license
部分,在缩小的文件中留下了一条空注释。看来Closure将保留@license
注释之后的任何内容。