1

我有这样的文件夹结构:

js_uncompressed
  > lib
    > libraries which all js files should include.
  > common
    > files which some js files should include
  > folder1
    > screenA.js
    > screenB.js
  > folder2
    > screenC.js

我想为每个屏幕 [-something].js 构建 javascript 文件。

例如,

screenA.js 应该在“lib”文件夹中包含文件,fileA.js 在“common”文件夹中。

screenB.js 应该在“lib”文件夹中包含文件,fileB.js 在“common”文件夹中。

screenC.js 应该包含“lib”文件夹中的文件,“common”文件夹中的 fileA.js 和 fileB.js。

如果没有一些复杂的 shell 脚本,这可能吗?

4

1 回答 1

1

如果您可以使用 Ant,您可以使用Google Closure Compiler轻松构建它。这只是您可以开始的示例。

<?xml version="1.0" encoding="UTF-8"?>
<project name="Foo" default="default" basedir=".">
    <description>Bar.</description>

    <target name="-pre-dist">

        <property name="closureCompiler" value="${build.classes.dir}/../lib/compiler.jar"/>
        <property name="jsRootFolder" value="${build.web.dir}/javascript"/>
        <property name="compiledJsFolder" value="${build.web.dir}/javascript"/>
        <property name="compiledJsFileApp" value="${compiledJsFolder}/application.min.js"/>

        <echo>Bulding JavaScript...</echo>

        <java jar="${closureCompiler}"
                args="--compilation_level SIMPLE_OPTIMIZATIONS
                --js ${jsRootFolder}/screenA.js
                --js ${jsRootFolder}/screenB.js
                --js ${jsRootFolder}/screenC.js
                --js ${jsRootFolder}/screenN.js
                --js_output_file ${compiledJsFileApp}"/>

        <echo>Done!</echo>

    </target>

</project>

我从我维护的一个项目中获取了这个代码片段。它是在 NetBeans 中创建的,但您可以轻松修改它以满足您的需要。类似的值${build.classes.dir}是特定于 NetBeans 构建文件的。这个构建文件creta一些引用(闭包编译器jar,文件夹等)并执行通过java任务调用编译器的“编译”。

于 2012-09-03T03:07:15.960 回答