簡體   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