closurebuilder的zc.buildout配方

pwt.recipe.closurebuilder的Python项目详细描述


这是closurebuilder工具的一个简单包装 谷歌关闭项目。

依赖关系

设置一些javascript文件。

>>> import os.path
>>> os.mkdir(os.path.join(sample_buildout, 'js'))
>>> write('js/a.js', '''
... goog.provide('pwt.provideA');
...
... goog.require('pwt.provideB');
... ''')
>>> write('js/b.js', '''
... goog.provide('pwt.provideB');
... ''')
>>> mkdir('js/goog')
>>> write('js/goog/base.js', open(os.path.join(os.path.dirname(__file__), "goog/base.js")).read())

生成一个依赖文件,指定所有javascript文件的位置 位于您的项目中。

>>> write('buildout.cfg', '''
... [buildout]
... parts = deps.js
...
... [deps.js]
... recipe = pwt.recipe.closurebuilder:dependency
... output = %(dir)s/deps.js
... roots = %(dir)s/js
... ''' %{'dir': sample_buildout})
>>> print system(buildout)
Installing deps.js.
<BLANKLINE>
>>> cat('deps.js')
// This file was autogenerated by buildout[deps.js].
// Please do not edit.
goog.addDependency('a.js', ['pwt.provideA'], ['pwt.provideB']);
goog.addDependency('b.js', ['pwt.provideB'], []);
goog.addDependency('goog/base.js', ['goog'], []);

前缀为

的根

生成一个依赖文件,指定所有javascript文件的位置 位于您的项目中。有时文件在不同的 名称空间,然后使用带前缀的根目录选项。

>>> write('buildout.cfg', '''
... [buildout]
... parts = deps.js
...
... [deps.js]
... recipe = pwt.recipe.closurebuilder:dependency
... output = %(dir)s/deps.js
... root_with_prefix = %(dir)s/js /media
... ''' %{'dir': sample_buildout})
>>> print system(buildout)
Uninstalling deps.js.
Installing deps.js.
<BLANKLINE>
>>> cat('deps.js')
// This file was autogenerated by buildout[deps.js].
// Please do not edit.
goog.addDependency('/media/a.js', ['pwt.provideA'], ['pwt.provideB']);
goog.addDependency('/media/b.js', ['pwt.provideB'], []);
goog.addDependency('/media/goog/base.js', ['goog'], []);

编译

使用上面的信息,生成 javascript应用程序。

>>> write('buildout.cfg', '''
... [buildout]
... parts = deps.js compiled.js
...
... [deps.js]
... recipe = pwt.recipe.closurebuilder:dependency
... output = %(dir)s/d1.js
... roots = %(dir)s/js
...
... [compiled.js]
... recipe = pwt.recipe.closurebuilder:compile
... dependency = deps.js
... output = %(dir)s
... inputs = %(dir)s/js/a.js
... ''' %{'dir': sample_buildout})
>>> output = system(buildout)
>>> output == '''root: Compiling with the following command: java -jar %(jar)s --js %(dir)s/js/goog/base.js --js %(dir)s/js/b.js --js %(dir)s/js/a.js
... Uninstalling deps.js.
... Installing deps.js.
... Installing compiled.js.
... ''' %{'jar': os.path.join(os.path.dirname(__file__), 'compiler-1111.jar'),
...       'dir': sample_buildout}
True
>>> ls(sample_buildout)
-  .installed.cfg
-  0fb0e24aea59f6281f3c615ffe650823.js
d  bin
-  buildout.cfg
-  d1.js
d  develop-eggs
d  eggs
d  js
d  parts

我们还可以指定可能没有goog.provide声明的额外文件。 这样就不会被德斯威特的配方所接受了。

>>> write('js/c.js', '''
... alert('c');
... ''')
>>> write('buildout.cfg', '''
... [buildout]
... parts = deps.js compiled.js
...
... [deps.js]
... recipe = pwt.recipe.closurebuilder:dependency
... output = %(dir)s/d1.js
... roots = %(dir)s/js
...
... [compiled.js]
... recipe = pwt.recipe.closurebuilder:compile
... dependency = deps.js
... output = %(dir)s
... inputs = %(dir)s/js/a.js
... extra_js = js/c.js
... ''' %{'dir': sample_buildout})
>>> output = system(buildout)
>>> output == '''root: Compiling with the following command: java -jar %(jar)s --js js/c.js --js %(dir)s/js/goog/base.js --js %(dir)s/js/b.js --js %(dir)s/js/a.js
... Uninstalling compiled.js.
... Updating deps.js.
... Installing compiled.js.
... ''' %{'jar': os.path.join(os.path.dirname(__file__), 'compiler-1111.jar'),
...       'dir': sample_buildout}
True
>>> ls(sample_buildout)
-  .installed.cfg
-  b68ab8e7a5aa2b2787d35e9b762fb191.js
d  bin
-  buildout.cfg
-  d1.js
d  develop-eggs
d  eggs
d  js
d  parts

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何表示1。。Java中的n关系   java在安卓应用程序中添加polaris viewer   Java字符串::replaceAll仅替换第一个出现(可能不正确的正则表达式)   java Tomcat/JBoss部署后脚本   如何在Heroku Java应用程序中运行发出web请求的周期进程   java如何以纳秒为单位证明算法的时间   Solaris上的java自定义ListCellRenderer(使用jre5)   java试图为我的播放器类测试块实现播放器重力(RealtutsGml平台教程)   c#消耗一个。带有java的net web服务未显示预期结果   java在KOI8\R中检索html   基于java图形的搜索与基于随机的搜索   java如何检查安卓设备上的可用空间?在SD卡上?