【问题标题】:Different sbt-web pipeline task settings in development vs production?开发与生产中不同的 sbt-web 管道任务设置?
【发布时间】:2015-07-25 09:38:04
【问题描述】:

我希望 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

【问题讨论】:

  • in Assets 的使用可能是 pipelineStages 特定的。需要在 dev 中运行 uglify 吗?
  • 它只用于将所有*.js 连接到一个文件中。由于我不记得的原因,我无法使用sbt-concat

标签: playframework sbt playframework-2.3 uglifyjs sbt-web


【解决方案1】:

我最终做了这样的事情

def optimize = System.getProperty("optimize") != null

UglifyKeys.compress := optimize
UglifyKeys.mangle := optimize

然后我可以运行sbt dist -J-Doptimize

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 2012-05-26
    相关资源
    最近更新 更多