首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >es6模板文字上的EJS错误

问es6模板文字上的EJS错误
EN

Stack Overflow用户
提问于 2016-05-18 20:09:35
回答 1查看 1.9K关注 0票数 1

我正在创建一个Yeoman应用程序生成器,并使用一个包含模板文本的模板js文件。我希望输出文件包含这一行

代码语言:javascript
复制
app.use(`/api/${apiVersion}`, apiRoutes); 

但是我认为${apiVersion}被解释为一个模板值,并给出了错误

代码语言:javascript
复制
ReferenceError: apiVersion is not defined
    at eval (lodash.templateSources[2]:9:10)
    at copy.process (/.../node-microservice/node_modules/mem-fs-editor/actions/copy-tpl.js:11:58)

我怎样才能不用用它来解决这个问题

代码语言:javascript
复制
app.use('/api/' + apiVersion, apiRoutes); 

??谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-28 01:40:36

这是由于约曼支持交存风格的模板,它与ES6模板字符串冲突。

修复方法是通过将以下options对象传递给模板复制例程(作为最后一个参数),强制Yeoman只使用EJS样式的模板分隔符:

代码语言:javascript
复制
this.fs.copyTpl(
  this.templatePath('_foo.js'),
  this.destinationPath(`foo.js`),
  variables,
  { interpolate: /<%=([\s\S]+?)%>/g }
);

(参考:http://mammal.io/articles/yeoman-generators-es6/)。

另一个比较麻烦的解决方法是将所需的代码行嵌入到EJS模板标记中的字符串中:

代码语言:javascript
复制
<%= 'app.use(`/api/${apiVersion}`, apiRoutes);' %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37309187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档