开发与生产中的不同 sbt-web 管道任务设置?
Different sbt-web pipeline task settings in development vs production?
我希望 sbt 设置在 运行 开发 (sbt run
) 与生产 (sbt dist
/ sbt start
) 时具有不同的值。
具体来说,我正在使用 sbt-uglify。我在开发中使用它来将 javascript 资产连接到一个文件中。我在开发中禁用了压缩和重整,因为它使代码更难调试。
在生产中,我想使用压缩来删除调试代码块 (if (DEBUG) { ... }
),这可以使用 uglifyjs 的死代码删除功能实现。
我预计这会起作用:
// "in Assets" to use uglify in dev & prod
pipelineStages in Assets := Seq(uglify)
// enable compression and mangling in prod
UglifyKeys.compress := true
UglifyKeys.mangle := true
// disable in development (DOESN'T WORK! Values are always true)
UglifyKeys.compress in Assets := false
UglifyKeys.mangle in Assets := false
我最终做了这样的事情
def optimize = System.getProperty("optimize") != null
UglifyKeys.compress := optimize
UglifyKeys.mangle := optimize
那我可以运行sbt dist -J-Doptimize
我希望 sbt 设置在 运行 开发 (sbt run
) 与生产 (sbt dist
/ sbt start
) 时具有不同的值。
具体来说,我正在使用 sbt-uglify。我在开发中使用它来将 javascript 资产连接到一个文件中。我在开发中禁用了压缩和重整,因为它使代码更难调试。
在生产中,我想使用压缩来删除调试代码块 (if (DEBUG) { ... }
),这可以使用 uglifyjs 的死代码删除功能实现。
我预计这会起作用:
// "in Assets" to use uglify in dev & prod
pipelineStages in Assets := Seq(uglify)
// enable compression and mangling in prod
UglifyKeys.compress := true
UglifyKeys.mangle := true
// disable in development (DOESN'T WORK! Values are always true)
UglifyKeys.compress in Assets := false
UglifyKeys.mangle in Assets := false
我最终做了这样的事情
def optimize = System.getProperty("optimize") != null
UglifyKeys.compress := optimize
UglifyKeys.mangle := optimize
那我可以运行sbt dist -J-Doptimize