Playframework 如何从SBT运行Web包
我正在开发一个Play2.4应用程序,希望SBT在编译期间运行webpack以生成静态资产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
我尝试过,但它似乎对我不起作用。我通过定义一个自定义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问题上回复了。让我们来解决这个问题。