Javascript 如何使用ant build在js文件中追加字符串

Javascript 如何使用ant build在js文件中追加字符串,javascript,ant,Javascript,Ant,我想使用ant build将数据附加到js文件的特定位置 这是js文件 fun1= function(){ var data="data1"; } 我只想在文件中不存在的情况下追加一行 data =data+"data2"; 在游乐场里面。由于xmltask只针对XML文件,有什么方法可以做到这一点吗?我会使用令牌替换。在JS中,字符串格式为: fun1= function(){ var data="data1 @@@@"; } 然后在ant中,你可以说: <repl

我想使用ant build将数据附加到js文件的特定位置

这是js文件

fun1= function(){
    var data="data1";
}
我只想在文件中不存在的情况下追加一行

data =data+"data2";

在游乐场里面。由于xmltask只针对XML文件,有什么方法可以做到这一点吗?

我会使用令牌替换。在JS中,字符串格式为:

fun1= function(){
    var data="data1 @@@@";
}
然后在ant中,你可以说:

<replace file="script.js" token="@@@@" value="data2"/>

它将用值
data2


只是要小心,替换已经完成,所以不要在原始源代码上执行,而是在编译版本上执行,或者至少在副本上执行。否则,您只能执行一次更换。

我已经解决了这个使用条件

<condition property="pluginEntryExists">
    <resourcecontains resource="js_file_location" substring="data =data+'data2';"/>
</condition>

并根据属性集执行目标

<target name="append-data" unless="${pluginEntryExists}">
    <!-- to support propertyregex include antcontrib.jar -->
    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="./lib/ant-contrib-1.0b3.jar" />
        </classpath>
    </taskdef>

    <loadfile property="configFileData" srcFile="js_file_location" />
    <propertyregex property="pluginList" input="${configFileData}" regexp='var data=".*;' select="\0" />

    <replaceregexp file="js_file_location" match='var data=".*;' replace="${pluginList}data+='data2';" />
</target>

但标记(比如@@)可以出现在文件中的多个位置。这就是为什么我要添加js代码,即data=data+“data2”;嗯,我想你的工作就是挑选合适的代币。它不一定是一系列毫无意义的符号,您可以使用一些特定的符号,例如
${injected.data2}
作为标记。很少有可能被错误地用在其他地方。。。