飞镖检查是否正在建设

时间:2017-02-27 13:49:38

标签: dart dart2js

我想跳过pub build上的一些特定代码。

示例:

Log.print('something $ {StackTrace.current}');

我希望上面的代码不会在生产中传播给JS。

1 个答案:

答案 0 :(得分:3)

断言仅在检查模式下执行,默认情况下pub build不会在生产模式中包含断言:

assert(() {
  Log.print('something ${StackTrace.current}');
  return true;
})

DartPad example不打印它,因为它以生产模式构建。

您也可以将“环境”(不与OS环境变量混淆)传递给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