Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何将“吞咽”模板代码与下划线模板代码分开?_Javascript_Templates_Underscore.js_Gulp_Lodash - Fatal编程技术网

Javascript 我如何将“吞咽”模板代码与下划线模板代码分开?

Javascript 我如何将“吞咽”模板代码与下划线模板代码分开?,javascript,templates,underscore.js,gulp,lodash,Javascript,Templates,Underscore.js,Gulp,Lodash,我正在使用gulp构建我的项目,我的项目的一部分使用下划线模板。我在构建过程中使用的一个插件是GulpTemplate,它使用Lodash模板 当我使用gulp时,是否可以指示应该呈现哪些代码,以及应该忽略哪些代码进行模板化 例如,我有一个文件包含: <script src="<%= image_server_url %>/scripts/iep-alert/alert-content.js"></script> 现在,当我调用调用gulp模板的gulp任务

我正在使用gulp构建我的项目,我的项目的一部分使用下划线模板。我在构建过程中使用的一个插件是GulpTemplate,它使用Lodash模板

当我使用gulp时,是否可以指示应该呈现哪些代码,以及应该忽略哪些代码进行模板化

例如,我有一个文件包含:

<script src="<%= image_server_url %>/scripts/iep-alert/alert-content.js"></script>
现在,当我调用调用gulp模板的gulp任务时,我得到了
ReferenceError:alert未定义
,因为gulp模板的上下文不包括
alert
——只有
image\u server\u url
是gulp模板上下文的一部分

编辑:我编辑了我的代码以匹配
{{image\u server\u url}
,我将调用更改为
gulp template
,如下所示:

template({
    image_server_url: config.dev.image_server_url
}, {
    interpolate: /{{([\s\S]+?)}}/g
})
通过这些更改,当我运行我的
构建
任务时,我认为
gulp template
仍在尝试在
块内运行代码,因为我遇到以下错误:

窗口未定义

它试图在第一个



如果有人能解决这个问题,那就太好了。我想现在我要研究另一种解决方案。

我找不到任何明智的方法来做到这一点,因为你想两次解析同一个模板,只需要在gulp中插入一些字符串,在浏览器中插入其他字符串

建议使用
。.templateSettings
,以便在gulp处理中,可以使用其他模板格式

例如,在吞咽中,您设置:

.\uu.templateSettings.interpolate=/{{([\s\s]+?)}}/g

在模板中:

因此,当模板打算由gulp处理时,使用
{{}
插值语法,当它打算在浏览器端处理时,使用默认(erb)
语法。我的代码现在看起来像这样,到目前为止运行良好

<script src="<!-- @echo IMAGE_SERVER_URL -->/scripts/iep-alert/alert.js"></script>

在哪里设置
插值
?这在我的
gulpfile
中有什么地方吗?因为我只使用gulp模板插件来插入字符串,有没有比使用Lodash这样的完整模板系统更好的方法?
<%
    if (window.location.href.indexOf('admin') != -1) {
%>
<script src="<!-- @echo IMAGE_SERVER_URL -->/scripts/iep-alert/alert.js"></script>