gpt4 book ai didi

javascript - Closure Compiler - 使用 jQuery 和 Closure 对源代码进行混合编译

转载 作者:行者123 更新时间:2023-11-29 22:04:40 29 4
gpt4 key购买 nike

我正在将一个项目从 jQuery 迁移到 Closure。我有一些我想编译的只迁移了一半的代码。未编译的源工作正常。我想知道使用 SIMPLE_OPTIMIZATIONS 编译它的编译命令。

原始基于 jQuery 的代码的编译命令是这样的:

java -jar ~/closure/closure-compiler/build/compiler.jar \
--js ~/Sites/mysite/js/bc_school6_2.js \
--js ~/Sites/js_common/bc.job_school.js \
--js ~/Sites/js_common/bc_help.js \
--js ~/Sites/js_common/validation.js \
--js ~/Sites/js_common/md5.js \
--js ~/Sites/js_common/chosen.jquery.js \
--js ~/Sites/js_common/jquery.reveal.js \
--js ~/Sites/js_common/printArea.js
> ~/Sites/mysite/js-minified/bc_school6_2s.js

完全迁移后源代码的 SIMPLE_OPTIMIZATIONS 编译命令将是这样的(尽管完全迁移的代码将使用 ADVANCED_OPTIMIZATIONS):

closure-library/closure/bin/build/closurebuilder.py \
--root=closure-library/ \
--root=closure-templates/javascript/ \
--root=bc/ \
--namespace="bc.bc_school6_2" \
--output_mode=compiled \
--compiler_jar=closure-compiler/build/compiler.jar \
--compiler_flags="--compilation_level=SIMPLE_OPTIMIZATIONS" \
> ~/Sites/mysite/js-minified/bc_school6_2s.js

目前源码中没有正确设置命名空间,导致后面的编译过程无法正常进行。

是否可以使用 Google Closure 库编译源代码,然后添加 js_common 文件夹中的所有 jQuery 文件?我可以在一个编译命令中完成吗?如果不能,我可以编译我的 goog 代码,然后合并 jQuery Material 吗?

谢谢。

最佳答案

您可以编译您的 goog 代码,然后将 jQuery 代码包含为外部代码。此方法还可以让您在 ADVANCED MODE 中编译代码,并且仍然能够以其原始形式使用 jQuery

为此,您必须使用包含所有外部声明的 .js 文件。然后你使用 --externs 标志告诉闭包编译器去哪里寻找 externs。请参阅下面的示例用法:

java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS \
--js makeallnotes.js --externs extern1.js --externs extern2.js

要了解更多关于如何声明外部的信息,请参阅 tutorial .基本上,它们用于告知闭包编译器您正在使用的外部 API 或库。

Google Closure 源代码中实际上包含一个 jQuery 外部文件。查找您正在使用的 jQuery 版本 on this page .

附带说明一下,我会考虑使用 Plovr构建您的关闭项目。它允许您使用配置文件来设置所有构建参数,如果您经常构建代码,将会节省大量时间。

关于javascript - Closure Compiler - 使用 jQuery 和 Closure 对源代码进行混合编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21673821/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com