跳转到主要内容

构建(打包、聚合)JavaScript库的各种Python工具

项目描述

“JSTools”是一组管理JavaScript库的实用工具。

安装

在jstools发布到pypi之前,我们建议从jstools中检出,并使用“python setup.py install”或“python setup.py develop”进行安装。

需求

应该是python 2.4友好,主要在python 2.5上测试

Easy Install

$ easy_install jstools

这将把以下脚本放入“/your/python/distribution/bin”

$ bin/jsbuild
$ bin/jsmin

根据您的系统,此操作可能需要sudo。

环境安装

‘jstools’ 包含一个脚本,用于创建一个封装的 Python 环境。此脚本还会自动下载 yui 压缩工具并将其放置在 jstools 可以找到的位置。

此脚本可以将您选择的文件夹转换为 Python 环境,其中 jstools 脚本安装在名为 'bin' 的目录中。

$ easy_install -b ./ -e jstools
$ python jstools/install_jstools ./jsdir

这使得 'jsdir' 配置了 jstools 的 'bin',通过在命令行中 source 脚本 'bin/activate' 来激活它,现在 jsbuild 和 jsmin 就在您的路径中了。

$ cd jsdir
$ . bin/activate

其他分发选项

您可以根据喜好下载任何版本 jstools

$ wget http://github.com/whitmo/jstools/tarball/master
$ svn co http://svn.opengeo.org/jstools/trunk/ # not currently working
$ git clone git://github.com/whitmo/jstools.git

脚本

jsbuild

根据配置文件合并和压缩文件。jsbuild 会遍历配置中指定的每个根目录,索引所有以 .js 结尾的文件,然后根据配置文件中的规范以及文件内部声明的依赖项编译一个聚合源文件。

用法

jsbuild <config_file> [options]

选项

用法:jsbuild [options] filename1.cfg [filename2.cfg…]

选项
-h, --help

显示此帮助信息并退出

-u, --uncompress

不压缩合并的 JavaScript。jsbuild 默认将 'jsmin' 应用于所有输出。

-v, --verbose

打印更多信息

-l, --list-only

仅列出将要合并的 JavaScript 文件

-o OUTPUT_DIR, --output=OUTPUT_DIR

jsbuild 创建文件的输出目录(默认为当前目录)

-r RESOURCE_DIR, --resource=RESOURCE_DIR

资源文件的基目录(用于插值)

-b ROOT_DIR, --base-dir=ROOT_DIR

根目录的基目录(默认为当前目录)

-j SINGLE_FILE, --just=SINGLE_FILE

新功能 1.1:仅为此部分创建文件

-s CONCAT, --single-file-build=CONCAT

新功能 1.1。创建所有可能的输出为一个单一文件

-c COMPRESSOR, --compressor=COMPRESSOR

新功能 1.1。指定要使用的压缩插件,格式为 {specifier}:{‘arguments_string’}。

配置格式

配置文件可以有多个具有唯一名称的输出文件(即多个部分)。

部分按以下方式格式化

[Output.js]
root=
     path/to/where/files/are
     other/path/to/where/files/are

license=path/to/license/for/these/libs

first=
     3rd/prototype.js
     core/application.js
     core/params.js

last=
    core/api.js

exclude=
     3rd/exclude/file.js
     3rd/exclude/dir
     r:3rd/exclude/.*debug.js
#...

第一 部分中列出的文件将被迫在所有其他文件(按列表顺序)之前加载。在 最后一 部分的文件将被迫在所有其他文件(按列表顺序)之后加载。

排除 部分中列出的文件将不会被导入。排除条目可以是文件的相对路径或目录,也可以是以下模式的 Python 正则表达式:以模式 r: 开头,请参阅 Python re 语法:[https://docs.pythonlang.cn/library/re.html#regular-expression-syntax](https://docs.pythonlang.cn/library/re.html#regular-expression-syntax)

配置允许在配置文件中插值定义的变量。‘%(resource-dir)s’ 可以用 -r 标志的值替换。

使用 ‘#’ 注释的行将被忽略。

如果定义了 包含 部分,jsbuild 将仅从该部分构建列出的文件及其依赖项;否则,将构建 部分中的所有文件。

依赖项语法

文件合并使用候选 JavaScript 文件内的提示来确定依赖项。两种类型的依赖项通过源文件中的两种不同的注释格式来指定。

要指定目标文件必须在给定的源文件之前包含,请包含以下格式的注释

// @requires <file path>

例如。

// @requires Geo/DataSource.js

为了指定目标文件必须在合并构建的任何位置包含 - 在给定源文件之前或之后 - 在源文件中包含以下格式的注释

// @include <文件路径>

例如。

// @include Geo/DataSource.js

注意,配置文件中的“排除”列表将覆盖上述 @requires 和 @include 注释指令指定的依赖关系。

jsmin

将输入流压缩成输出流

用法

jsmin < cat some.js > some-compressed.js

许可协议

– 软件应用于善,而非恶。 –

详见文件以获取完整的版权信息

许可协议

混合。除非另有说明,否则与OpenLayers相同

Buildout 支持

详见 jstools/bo.txt

运行测试

在安装了 yuicomp 的 src 目录中

$ easy_install nose
$ paver get_yuicomp
$ cd test
$ nosetests {options}

或者最简单的方式

$ python setup.py test

致谢

jstools 是作为 OpenLayers 项目的一部分的构建脚本集合开始。

Whit Morriss (whit at opengeo.org) 将这些脚本重新打包为 jstools,Tim Schaub (tschaub at opengeo.org) 对 tsort 进行了大量的重写。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源分布

JSTools-1.0.tar.gz (20.8 kB 查看哈希值)

上传时间

构建分布

JSTools-1.0-py2-none-any.whl (25.0 kB 查看哈希值)

上传时间 Python 2

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面