有没有办法在构建过程中使用预处理器替换javascript文件中的变量。我使用grunt,usemin,uglifyjs(yeoman堆栈的一部分)。
我目前从全局javascript对象中引用url
。例如,
my.url = {
book: {
get : '/my/book/{id},
new: '/my/book'
}
}
在我的计划中,我可以将url
称为my.url.book.get
等。意图是
现在,一旦我对开发感到满意,我喜欢预处理所有的javascript文件,将所有这些引用替换为实际的url字符串。意图是避免使用所有URL加载额外的文件(可能用户只需要少量网址)。
是否有任何类似于html模板包的工具来处理javascript并替换所有变量。如果它适用于grunt / yeoman堆栈,我更喜欢。
答案 0 :(得分:0)
您可以使用grunt-replace执行此操作。它允许在文本文件中进行各种字符串替换。我使用它来同步bower.json
,package.json
等中的版本号,但显然您也可以将其用于源文件值替换。
那就是说,在你的情况下,我肯定会选择使用env变量的更动态的解决方案,例如grunt-env。
答案 1 :(得分:0)
Try @Builder https://github.com/electricimp/Builder
Little example
in config.js:
@set apiEndpoint "https://somesite.com/api/v1"
then:
@include once "config.js"
let url = "@{apiEndpoint}"