我有这样的文件夹结构:
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
我希望为每个屏幕构建javascript文件[-something] .js。
例如,
screenA.js应包含“lib”文件夹中的文件,“common”文件夹中的fileA.js文件。
screenB.js应包含“lib”文件夹中的文件,“common”文件夹中的fileB.js。
screenC.js应该包含“lib”文件夹中的文件,fileA.js和“common”文件夹中的fileB.js文件。
这可能没有一些复杂的shell脚本吗?
答案 0 :(得分: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>
我从我维护的项目中获取了此代码snipet。它是在NetBeans中创建的,但您可以轻松地修改它以满足您的需求。像${build.classes.dir}
这样的值是NetBeans构建文件的特定值。这个构建文件creta一些引用(闭包编译器jar,文件夹等)并执行通过java
任务调用编译器的“编译”。