【问题标题】:Escaping placeholder in Yeoman generator在 Yeoman 生成器中转义占位符
【发布时间】:2019-04-11 04:54:46
【问题描述】:

我正在尝试使用 Yeoman 为 Web 应用程序创建生成器,并且我有 *.jsp 和 *.gradle 文件,我希望在引导期间生成(有时只是复制)它们。不幸的是,当 *.jsp 文件(如 <%@ ... %>)中有 JSP cmets 或 *.gradle 文件中有 ${ .. } 等占位符时,Yeoman 会引发错误。

我猜错误的原因是 Yeoman 将此条目视为要处理的占位符,但它找不到合适的值,所以它抛出。

我该如何克服这个问题?如何逃避或禁用某种占位符的处理?

我仍然想在相同的文件中使用 EJS 样式的占位符 <%= .. %>

【问题讨论】:

    标签: placeholder yeoman-generator


    【解决方案1】:

    我在必须使用 ${propertyname} 的 maven 属性上遇到了同样的问题。

    我通过使用以下模板解决了这个问题。

    this.template('_pom.xml', 'pom.xml', null, { 'interpolate': /<%=([\s\S]+?)%>/g });
    

    我是 yeoman 的新手,所以我不知道 { 'interpolate': /&lt;%=([\s\S]+?)%&gt;/g } 做了什么,但它确实有效。

    【讨论】:

      【解决方案2】:

      如果要渲染jsp标签,如:

      <%@page contentType="text/html" pageEncoding="UTF-8"%>
      

      您可以使用 &lt;%% 打印文字 &lt;%

      所以把上一行改成:

      <%%@page contentType="text/html" pageEncoding="UTF-8"%>
      

      这解决了我的代码而无需制作临时文件。相同的解决方案可以应用于其他场景。

      【讨论】:

      • 为我工作!非常感谢! :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多