2014-06-30 63 views
2

我創建了一個需要一些配置的應用程序。我現在做這件事的方式有些瑣碎和乏味 - 如果我在本地開發,我會包含「本地」配置文件(一個定義了一些常量的dart文件),如果部署,我會包含一個不同的dart該文件定義了具有不同值的相同常量。有沒有一種很好的方式來針對不同的環境配置不同的配置?

理想情況下,將會有一種方法來定義不同的配置,這可以傳遞給pub serve/build。看起來這樣一個顯而易見的需求,我覺得可能已經存在,而我只是還沒有碰到它。在那兒?或者是有些作品?

+1

我在這裏回答了一個類似的問題http://stackoverflow.com/questions/22519574和這裏http://stackoverflow.com/questions/21338688 ;-) 另請參見格雷格洛斯在這裏回答http://stackoverflow.com /問題/ 20288002 –

回答

2

Pub build does not support defining environment variables但你可以用fromEnvironment method,例如,在String

String.fromEnvironment(String name, {String defaultValue}) 

返回該環境聲明名稱的字符串值。 環境聲明由編譯或運行Dart程序的周邊系統 提供。聲明將字符串鍵 映射爲字符串值。

或者讓它成爲「fancier」transformers。它將允許您自動(在發佈版本或發佈服務器上)從pubspec.yaml或其他源獲取設置並將它們嵌入到代碼中。例如sass(這是變壓器)軟件包支持這種形式的設置:

:::yaml 
transformers: 
    - sass: 
     executable: /path/to/sass  # Sass executable to use 
     compass: true     # Include compass 
     line-numbers: true   # Include line numbers in output 
     style: compact    # Style of generated CSS 
     copy-sources: true   # Copy original .scss/.sass files to output directory 

有了它,你可以做很多事情,包括修改源代碼。

相關問題