playframework - 开发与生产中不同的 sbt-web 管道任务设置?

标签 playframework sbt playframework-2.3 uglifyjs sbt-web

我希望 sbt 设置在开发( sbt run )中运行时具有与生产( sbt dist/sbt start )不同的值。

具体来说,我正在使用 sbt-uglify .我在开发中使用它来将 javascript Assets 连接到一个文件中。我在开发中禁用了压缩和修改,因为它使代码更难调试。

在生产中,我想使用压缩来删除调试代码块(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

关于playframework - 开发与生产中不同的 sbt-web 管道任务设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226015/

相关文章:

eclipse - Scala IDE (Kepler) 的 Playframework 2.3.0 问题

scala - 如何使用 scala 代码在 Play framework 2.3.x 中启用 HSTS?

user-interface - 需要设计类似 Gmail 的收件箱页面

mysql - Slick 2 中的多个 PostgreSQL 数据库(同一服务器)访问

scala - sbt 总是对虚假的源代码更改进行完全重建

sbt - 从 wsl2 ubuntu 启动 sbt 时出现 "sbt server is already booting."错误

scala - SBT 远程调试在 intellij 中有效,但在执行测试时无效

java - 从外部 API Play 模型对象

Scala 理解签名

javascript - 优化器不支持路径回退 ("reloaded")