运行 npm build for sbt 中的 play 框架
Run npm build for play framework within sbt
我对 sbt/play 配置不是很熟悉。我正在使用 play 2.3.8 为我的 javascript 应用程序提供服务。项目中有:
.enablePlugins(SbtWeb)
.enablePlugins(play.PlayScala)
.settings(
...
libraryDependencies ++= WebDependancies :+ evobufAkka,
pipelineStages in Assets := Seq(closure, digest),
...
// Some closure compiler settings
)
该项目正在使用闭包编译器来缩小代码等。但我想更改它。我想停止使用闭包编译器,而只使用简单的 npm 包。我知道 sbt 可以 运行 一些 shell 任务。所有这一切的原因是将服务器与前端分开,所以所有与前端相关的任务,如(less、uglify、指纹识别等)实际上都是由 javascript 工具如 node.js 完成的。我正在阅读有关 sbt-web 的信息,但我想尽可能避免这种情况。我的想法是:
1.启动sbt,打开我的项目
2. 运行编译:
- sbt 将 运行 我的 npm 任务结束一些 build.js 文件,然后可以通过播放框架从 /public 目录或其他目录提供服务。
3. 如果可能的话,我希望有一个单独的单元测试过程。
就 npm 设置而言,我正在考虑将 package.json 放入我的 project/public
文件夹中,除非最好将其放入 project/app/assets
.
这都可以吗?
2015 年 8 月 8 日更新
我做了一些研究,发现了有关外部流程的信息。基于我创建的一些示例:
lazy val npmBuildTask = taskKey[Unit]("Execute the npm build command to build the ui")
npmBuildTask := {
"cd public/ && npm install" !
}
但不确定如何将此任务添加到编译过程?
您可以使编译任务依赖于您的 npmBuildTask 任务:
compile <<= (compile in Compile) dependsOn npmBuildTask
我对 sbt/play 配置不是很熟悉。我正在使用 play 2.3.8 为我的 javascript 应用程序提供服务。项目中有:
.enablePlugins(SbtWeb)
.enablePlugins(play.PlayScala)
.settings(
...
libraryDependencies ++= WebDependancies :+ evobufAkka,
pipelineStages in Assets := Seq(closure, digest),
...
// Some closure compiler settings
)
该项目正在使用闭包编译器来缩小代码等。但我想更改它。我想停止使用闭包编译器,而只使用简单的 npm 包。我知道 sbt 可以 运行 一些 shell 任务。所有这一切的原因是将服务器与前端分开,所以所有与前端相关的任务,如(less、uglify、指纹识别等)实际上都是由 javascript 工具如 node.js 完成的。我正在阅读有关 sbt-web 的信息,但我想尽可能避免这种情况。我的想法是: 1.启动sbt,打开我的项目 2. 运行编译: - sbt 将 运行 我的 npm 任务结束一些 build.js 文件,然后可以通过播放框架从 /public 目录或其他目录提供服务。 3. 如果可能的话,我希望有一个单独的单元测试过程。
就 npm 设置而言,我正在考虑将 package.json 放入我的 project/public
文件夹中,除非最好将其放入 project/app/assets
.
这都可以吗?
2015 年 8 月 8 日更新
我做了一些研究,发现了有关外部流程的信息。基于我创建的一些示例:
lazy val npmBuildTask = taskKey[Unit]("Execute the npm build command to build the ui")
npmBuildTask := {
"cd public/ && npm install" !
}
但不确定如何将此任务添加到编译过程?
您可以使编译任务依赖于您的 npmBuildTask 任务:
compile <<= (compile in Compile) dependsOn npmBuildTask