用于在生成期间替换变量引用的Javascript预处理器
是否有一种方法可以在构建过程中使用预处理器替换javascript文件中的变量。我使用grunt、usemin、uglifyjs(yeoman堆栈的一部分) 我目前从全局javascript对象引用用于在生成期间替换变量引用的Javascript预处理器,javascript,gruntjs,yeoman,grunt-usemin,Javascript,Gruntjs,Yeoman,Grunt Usemin,是否有一种方法可以在构建过程中使用预处理器替换javascript文件中的变量。我使用grunt、usemin、uglifyjs(yeoman堆栈的一部分) 我目前从全局javascript对象引用url。比如说, my.url = { book: { get : '/my/book/{id}, new: '/my/book' } } 在我的程序中,我可以将url称为my.url.book.get,等等。目的是 不要让url字符串散布
url
。比如说,
my.url = {
book: {
get : '/my/book/{id},
new: '/my/book'
}
}
在我的程序中,我可以将url
称为my.url.book.get
,等等。目的是
- 不要让url字符串散布在整个程序中,因为开发过程中的任何更改都会使重构变得困难
- url可能基于服务器API生成,不希望在客户端重复
bower.json
、package.json
等中的版本号,但显然您也可以将其用于源文件值替换
也就是说,在您的情况下,我肯定会选择一个更具动态性的解决方案,使用env变量,例如。试试@Builder
小例子
在config.js中:
@set apiEndpoint "https://somesite.com/api/v1"
然后:
您可以通过C预处理器毫无问题地运行大多数js。有点黑,但它能用。谢谢你的提示。我从未使用过它,如果它基于节点/grunt,我可以轻松地将其与我的工作流集成。无论如何,如果没有其他方法,我会研究它。为什么不简单地提供一个“facade”模块来保存像
getBook()
这样的方法呢。这不仅可以提高可读性,还可以提高可维护性。如果你想在这里发布你自己的项目,我强烈建议你阅读。
@include once "config.js"
let url = "@{apiEndpoint}"