使用闭包库与jsTestDriver

7
我正在通过编写一个简单的JavaScript游戏来学习Google闭包工具。我在尝试使用jsTestDriver时遇到了困难,因为我不知道如何很好地将其与闭包库配合使用。
具体而言,我希望使用goog.require机制来包含任何其他JavaScript文件,而不是手动将它们全部添加到配置文件中。
根据meyertee的建议,我编写了一个简单的脚本,自动将这些依赖项写入配置文件。
#!/bin/bash
cp tests/jsTestDriver.conf.proto tests/jsTestDriver.conf
libs/closure-library/closure/bin/build/closurebuilder.py --root="./libs/closure-library" --root="./js" --namespace="lds" | sed "s#^#  - \.\./#" >> tests/jsTestDriver.conf

tests/jsTestDriver.conf.proto文件是一个简单的模板:

test:
  - "*.js"
load:
  - ../libs/knockout-2.1.0.js
# Crucial, the load key needs to be last, and this comment must be followed by a newline.

这是一个非常脆弱的脚本,但希望有人(不是我)会发现它有用。


1
感谢分享你的解决方案,我也已经将我的项目改为使用 Python 脚本(实际上我正在使用 calcdeps.py)。这比使用编译器更好,因为它可以捕获尚未链接到您的项目的依赖项 - 更适合测试新代码 - 并且速度更快。 - meyertee
2个回答

4
你可以半自动地完成此操作,让Closure Compile生成一个清单文件,其中将按照依赖顺序输出所有文件。 然后,您可以将该文件转换为相对路径,并将它们粘贴到JsTestDriver配置文件中。 这就是我这样做的方式。
你甚至可以编写一个自动执行此转换的脚本。
这是相关的编译器参数:
--output_manifest manifest.MF

Closure Compiler的Google Code Wiki上有一些细节。

编辑: 还有一些Python脚本可以帮助您计算依赖关系。您可以使用calcdeps.py或closurebuilder.py生成清单文件,甚至包括您的代码没有"required"的文件。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接