繁体   English   中英

Javascript预处理器在构建期间替换变量引用

[英]Javascript preprocessor to replace variable reference during build

有没有办法在构建过程中使用预处理器替换javascript文件中的变量。 我使用grunt,usemin,uglifyjs(yeoman堆栈的一部分)。

我目前从全局javascript对象中引用url 例如,

 my.url = {
     book: {
        get : '/my/book/{id},
        new: '/my/book'

     }
 }

在我的程序中,我可以将url称为my.url.book.get等。意图是

  • 不希望url字符串在程序中传播,因为在开发过程中的任何更改都会使重构变得困难。
  • url可能基于服务器API生成,并且不希望在客户端中复制。

现在,一旦我对开发感到满意,我喜欢预处理所有的javascript文件,将所有这些引用替换为实际的url字符串。 意图是避免使用所有url加载额外的文件(用户可能只需要少量的url)。

是否有任何工具,类似于html模板包,来处理javascript并替换所有变量。 如果它适用于grunt / yeoman堆栈,我更喜欢。

你可以用grunt-replace做到这一点它允许在文本文件中进行各种字符串替换。 我使用它来同步bower.jsonpackage.json等中的版本号,但显然你也可以将它用于源文件值替换。

也就是说,在你的情况下,我肯定会选择使用env变量的更动态的解决方案,例如grunt-env

试试@Builder https://github.com/electricimp/Builder

小例子

config.js中

@set apiEndpoint "https://somesite.com/api/v1"

然后:

@include once "config.js"
let url = "@{apiEndpoint}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM