Playframework 开发和生产中不同的sbt web管道任务设置?

Playframework 开发和生产中不同的sbt web管道任务设置?,playframework,sbt,playframework-2.3,uglifyjs,sbt-web,Playframework,Sbt,Playframework 2.3,Uglifyjs,Sbt Web,我希望sbt设置在开发(sbt run)中运行时与生产(sbt dist/sbt start)中运行时具有不同的值 具体来说,我正在使用。我在开发中使用它将javascript资产连接到一个文件中。我在开发中禁用了压缩和损坏,因为这会使代码更难调试 在生产中,我希望使用压缩来删除调试代码块(if(debug){…}),这可以使用uglifyjs的死代码删除功能 我希望这能奏效: // "in Assets" to use uglify in dev & prod pipelineStag

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

具体来说,我正在使用。我在开发中使用它将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

在资产中使用
,而不是特定于
pipelineStages
。您需要在dev中运行
uglify
吗?它只用于将所有
*.js
连接到一个文件中。由于无法回忆的原因,我无法使用sbt concat。