Я хотел бы пропустить определенный код при сборке паба.
пример:
Log.print('что-то ${StackTrace.current}');
Я хотел бы, чтобы приведенный выше код не был перенесен в JS в процессе производства.
Я хотел бы пропустить определенный код при сборке паба.
пример:
Log.print('что-то ${StackTrace.current}');
Я хотел бы, чтобы приведенный выше код не был перенесен в JS в процессе производства.
Утверждения выполняются только в проверенном режиме и не будут включены pub build
в производственный режим по умолчанию:
assert(() {
Log.print('something ${StackTrace.current}');
return true;
})
пример DartPad не распечатывается, поскольку он создается в производственном режиме.
Вы также можете передать «среду» (не путать с переменными среды ОС) в pub build
и прочитать ее в коде.
transformers: # or dev_transformers
- $dart2js:
environment: { PROD: "true" }
const prod = String.fromEnvironment('PROD')
print('PROD: $prod');
// prints 'PROD: null' in Dartium
// prints 'PROD: true' in Chrome
См. также https://stackoverflow.com/a/22524258/217408.
assert(...)
и вызываете только изнутри. Если он нигде не используется, встряхивание дерева должно удалить его, а также если он используется из кода, который не попадает в выходные данные сборки, такие как код из assert(...)
.
- person Günter Zöchbauer; 27.02.2017