我創建了一個需要一些配置的應用程序。我現在做這件事的方式有些瑣碎和乏味 - 如果我在本地開發,我會包含「本地」配置文件(一個定義了一些常量的dart文件),如果部署,我會包含一個不同的dart該文件定義了具有不同值的相同常量。有沒有一種很好的方式來針對不同的環境配置不同的配置?
理想情況下,將會有一種方法來定義不同的配置,這可以傳遞給pub serve/build。看起來這樣一個顯而易見的需求,我覺得可能已經存在,而我只是還沒有碰到它。在那兒?或者是有些作品?
我創建了一個需要一些配置的應用程序。我現在做這件事的方式有些瑣碎和乏味 - 如果我在本地開發,我會包含「本地」配置文件(一個定義了一些常量的dart文件),如果部署,我會包含一個不同的dart該文件定義了具有不同值的相同常量。有沒有一種很好的方式來針對不同的環境配置不同的配置?
理想情況下,將會有一種方法來定義不同的配置,這可以傳遞給pub serve/build。看起來這樣一個顯而易見的需求,我覺得可能已經存在,而我只是還沒有碰到它。在那兒?或者是有些作品?
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
有了它,你可以做很多事情,包括修改源代碼。
我在這裏回答了一個類似的問題http://stackoverflow.com/questions/22519574和這裏http://stackoverflow.com/questions/21338688 ;-) 另請參見格雷格洛斯在這裏回答http://stackoverflow.com /問題/ 20288002 –