如何使用webpack / babel来预先填充JS模板字符串?

时间:2017-06-28 15:44:44

标签: javascript webpack babel

比方说,我想创建一个rot13模板标签。您可以像这样使用它:

 let secret = rot13`This is a secret.`;

现在我可以在JavaScript中实现这个标记,但我想预先解析它,以便我的编译包实际上包含:

 let secret = "Guvf vf n frperg.";

我该怎么做?我是否必须创建一个Babel插件来挂钩他们的解析器?那会是什么样的?

现在如果我希望Webpack还吐出一个名为rotated_strings.txt的文件,其中包含已经转换过的所有这些字符串的列表,该怎么办?我该如何收集它们?即,我如何让Babel和Webpack进行通信,以便Babel可以进行内联转换,但不知何故通知Webpack生成这个额外的文件?

1 个答案:

答案 0 :(得分:3)

尝试以下方法。
https://astexplorer.net/#/gist/89a6bdce0165d2661385828d9d85a7e0/4d745f3e8b5bfd25ba919cff567f27055d9e3a75

  • 我已经建立了Joe Clay在评论中创造的内容。
  • 现在,此控制台会记录最后一次更改的所有内容
  • 在评论中,我已经写了一些你可以替换它的东西,一旦你将它移动到你的项目构建环境中使用(假设它是Node)

PS:我在评论中使用了同步API来快速演示它,你应该切换到Async API

更新:当您在Babel插件中编写此内容时,请务必设置准和熟的attrs,但请改用var result = db.Database.SqlQuery<object>("dbo.CompareStrategy @cid, @targetDate", new SqlParameter("cid", cid), new SqlParameter("targetDate", targetDate));