Playframework 如何从SBT运行Web包

Playframework 如何从SBT运行Web包,playframework,sbt,webpack,Playframework,Sbt,Webpack,我正在开发一个Play2.4应用程序,希望SBT在编译期间运行webpack以生成静态资产 我尝试过,但它似乎对我不起作用。我通过定义一个自定义sbt任务来实现它,该任务用于在打包应用程序时调用的dist和stage任务的依赖关系 任务的代码很简单: lazy val webpack=taskKey[Unit](“打包应用程序时运行webpack”) def RUNWeback(文件:file)={ 进程(“网页包”,文件)! } 网页包:={ if(runWebpack(baseDirecto

我正在开发一个Play2.4应用程序,希望SBT在编译期间运行webpack以生成静态资产


我尝试过,但它似乎对我不起作用。

我通过定义一个自定义sbt任务来实现它,该任务用于在打包应用程序时调用的
dist
stage
任务的依赖关系

任务的代码很简单:

lazy val webpack=taskKey[Unit](“打包应用程序时运行webpack”)
def RUNWeback(文件:file)={
进程(“网页包”,文件)!
}
网页包:={
if(runWebpack(baseDirectory.value)!=0)抛出新异常(“运行webpack时出现问题。”)
}

在我更新到SBT1.0.x之前,distNouhoum的答案一直运行良好

只需要一些更新:

导入scala.sys.process.process
lazy val webpack=taskKey[Unit](“打包应用程序时运行webpack”)
def RUNWeback(文件:file)={
过程(“npm运行构建”,文件)!
}
网页包:={
if(runWebpack(baseDirectory.value)!=0)抛出新异常(“运行webpack时出现错误。”)
}
dist:=(dist dependsOn webpack).值
阶段:=(阶段依赖于网页包)。值

我们构建了
sbt网页包
,它与Playframework的静态资产的增量编译进行了干净的集成。我希望那是你想要的。它在
sbt运行
sbt阶段
中正常工作

目前,我们正在使用它将
Vue
Axios
Vue-i18
打包到一个JS文件中,该文件稍后包含在我们的HTML文件中。然后,我们使用
expose loader
来公开变量
Vue
VueI18n
axios

首选
sbt webpack
的原因是,它会将输出文件生成到Playframework路由可以使用的适当位置。因为它与Playframework的静态资产的增量编译集成在一起

以下是回购协议:


或者您可以直接跳到一个工作示例:

您的插件提供了找不到的依赖项。。我在github上添加了一个问题,谢谢您的尝试。我认为根本原因是sbt版本与scala的主要版本不匹配。我已经在github问题上回复了。让我们来解决这个问题。