在build.sbt中通过sbt设置browserify的调用,以便在编译时捆绑依赖项

时间:2017-08-28 10:16:59

标签: java playframework sbt browserify

这个场景,我正在使用Java Play Framework构建play-java。我有一个依赖,babel编译成一个讨厌的输出行" var sth = require(" sth")"。 显然,browserify是让这个nodejs样式包含在浏览器中工作的唯一希望。但我不想在每次新编译时从CLI手动调用browserify。所以我发现这个片段https://www.toptal.com/scala/using-scala-js-with-npm-and-browserify离家更近了,但他的案子是针对Scalajs的。 那么我怎样才能在我的场景中复制他的解决方案呢?

1 个答案:

答案 0 :(得分:2)

您可以通过创建在资源生成阶段执行的任务来从sbt执行browserify。

以此种子项目为例,请查看build.sbt以了解如何创建任务:https://github.com/maximebourreau/play-reactjs-es6-seed

请注意,他们弃用了< + =以附加到列表中,因此您可以将sourceGenerators行更改为:

sourceGenerators in Assets += browserifyTask.taskValue

请注意,这只是在node_modules目录中执行browserify二进制文件,因此您必须npm install browserify并运行bablify任务,但您可以更改它执行的任务。

它还将文件硬编码为browerify app/assets/javascripts/main.jsx。您也可以将其更改为settingKey。

每当您更改sourceDirectory in Assets

中的文件时,源生成器都会运行

希望这有帮助。