使用 Google Closure Compiler 应用程序将所有 .js 文件压缩在一个文件中
我想在命令行中使用 Google Closure Compiler 将同一目录中的所有文件 .js
压缩到一个文件中。
对于一个文件来说:
java -jar compiler.jar --js test.js --js_output_file final.js
但我在文档中没有找到如何将另一个文件放在 final.js
的末尾而不覆盖最后一个压缩文件?
我想要这样的东西:
java -jar compiler.jar --js --option *.js --js_output_file final.js
我可能或者必须做一个程序,将所有文件添加到一个文件中并在压缩后进行? 谢谢你,如果你能帮助我!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我尝试了 Orbits 的答案,但它并没有真正起作用,也许我使用的版本是较新的版本。我使用的命令是:
I tried Orbits' answer, but It didn't really work perhaps the version I use is a newer version. The command I use is :
假设您已经在 Mac 上安装了带有 Homebrew 的 Closure 编译器,您还可以连接所有文件,然后将它们通过管道传输到 Closure(这也应该以
java -jar
方式工作,但我没有这样做)已验证):Assuming that you’ve installed the Closure Compiler with Homebrew on a Mac, you can also concatenate all files and then pipe them to to Closure (this should also work the
java -jar
way, but I haven’t verified it):这里有五种包含多个输入文件的通配技术,文档摘自
CommandLineRunner
类:(1) 这是 muka 的技术,删除了不需要的
--js
标志:来自文档:
这将包括
/src/
中的所有.js
文件,但不会包括/src/
子目录中的任何文件。(2) 与 1 类似,但将包含
/src/
中的所有.js
文件 它的所有子目录:(3) 与2类似,但使用
xargs
:来自文档:
(4) v20140625
版本添加了对
**
(globstar) 通配符的支持,该通配符递归地匹配所有子目录。
例如,这将包括
/src/
及其所有子目录中的所有.js
文件:更多信息 此处。来自文档:
来自 Java 文档:
(5) v20140625
版本还添加了一个新功能:如果输入路径是目录,则所有
.js
文件在该目录中,所有子目录都将包含在内。
例如,这将包括
/src/
及其所有子目录中的所有.js
文件:更多信息 此处。
Here are five globbing techniques for including multiple input files, with documentation extracted from the
CommandLineRunner
class:(1) This is a variation of muka's technique, removing the
--js
flag, which is not needed:From the docs:
This will include all
.js
files in/src/
, but won't include any files in subdirectories of/src/
.(2) Similar to 1, but will include all
.js
files in/src/
and all its subdirectories:(3) Similar to 2, but uses
xargs
:From the docs:
(4) The v20140625
release added support for the
**
(globstar) wildcard, which recursivelymatches all subdirectories.
For example, this will include all
.js
files in/src/
and all its subdirectories:More info here. From the docs:
From the Java docs:
(5) The v20140625
release also added a new feature: if the input path is a directory, then all
.js
filesin that directory and all subdirectories will be included.
For example, this will include all
.js
files in/src/
and all its subdirectories:More info here.
您可以使用 KjsCompiler: https://github.com/knyga/kjscompiler
。使用 Google Closure Compiler 应用程序以正确的顺序编译多个 JavaScript 文件
如何解决您的问题:
1.在js文件中添加注解,如下:
/**
* @depends {lib/somefile.js}
**/
如果你不关心编译链,可以忽略这一步。
2.
java -jar kjscompile.jar
您可以在这里查看示例:https://github.com/knyga/kjscompiler/tree/master/examples
You can use KjsCompiler: https://github.com/knyga/kjscompiler
. Compiles multiple JavaScript files with Google Closure Compiler application in a right order
How to solve your problem:
1. Add annotations to js files, like this:
/**
* @depends {lib/somefile.js}
**/
If you do not care about compilation chain, you can ignore this step.
2.
java -jar kjscompile.jar
You can look for example here: https://github.com/knyga/kjscompiler/tree/master/examples
谷歌关闭文档的 github 给出了以下命令。
如果您有多个脚本,则应该使用一个编译命令将它们全部编译在一起。
您还可以使用 minimatch 风格的 glob。
来源:https://github.com/google/closure-compiler#compiling-multiple -脚本
The github of google closure doc gives the below command.
If you have multiple scripts, you should compile them all together with one compile command.
You can also use minimatch-style globs.
Source : https://github.com/google/closure-compiler#compiling-multiple-scripts