У меня есть многопроектная сборка sbt, и я бы хотел использовать https://github.com/softprops/coffeescripted-sbt, чтобы скомпилировать мой кофейник в javascript, но он не выполняет задачи.Используйте coffeescripted-sbt для компиляции coffeescript в многопроектной сборке
Код был взят из https://github.com/jeffmay/angular-play-multimodule-seed/tree/stackoverflow-17289043
С build.sbt
Несмотря на то, что не рекомендуется, я перепутал файл build.sbt в директории проекта с моими объектами проекта для того, чтобы проверить, если это плагин работал.
В build.sbt
:
seq(coffeeSettings: _*)
Когда я побежал:
$ sbt
[info] Loading project definition from /Users/jeffmay/code/righttrack/project
[info] Set current project to root (in build file:/Users/jeffmay/code/righttrack/)
> coffee
[success] Total time: 0 s, completed Jun 24, 2013 11:40:37 PM
> show coffee
[info] ArrayBuffer()
[success] Total time: 0 s, completed Jun 24, 2013 11:40:52 PM
> project web
[info] Set current project to web (in build file:/Users/jeffmay/code/righttrack/)
[web] $ coffee
[error] Not a valid command: coffee
[error] No such setting/task
[error] coffee
[error] ^
[web] $
Что ArrayBuffer()
значит? Это молчаливый отказ (CoffeeScript возвращения последнего выражения, которое иначе было бы return;
из null
?) Настройка
нескольких проектов
Для некоторого контекста, моя сборка будет пробит, как так ...
В project/plugins.sbt
:
// SBT community plugin resolver
resolvers += Resolver.url("sbt-plugin-releases",
new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
// CoffeeScript compiler plugin
addSbtPlugin("me.lessis" % "coffeescripted-sbt" % "0.2.3")
В project/Modules.scala
(моя сборка объекта):
import sbt._
object Modules extends Build {
lazy val root = RootModule.project
lazy val api = ApiModule.project
lazy val web = WebModule.project
}
В project/WebModule.scala
:
object WebModule extends BaseModule {
// ... libraries dependencies and stuff
override def project = play.Project(moduleName, moduleVersion, libraries, file(location),
moduleSettings ++
Seq((resourceManaged in (Compile, CoffeeKeys.coffee)) <<= (crossTarget in Compile)(_/"src"/"main"/"coffee"))
)
}
Я использую project/BaseModule.scala
удалить нагромождения общих элементов каждого модуля, но ничего сверхъестественного не делает.
С Build.scala
я удалить build.sbt
материал и поместить его в Build.scala
через project/WebModule.scala
, добавив:
override def project = play.Project(moduleName, moduleVersion, libraries, file(location),
moduleSettings ++
coffeeSettings ++ // With the settings moved from build.sbt
Seq((resourceManaged in (Compile, CoffeeKeys.coffee)) <<= (crossTarget in Compile)(_/"src"/"main"/"coffee"))
)
Тогда я дам ему кружиться
$ sbt
[info] Loading project definition from /Users/jeffmay/code/righttrack/project
[info] Set current project to root (in build file:/Users/jeffmay/code/righttrack/)
> coffee
[error] Not a valid command: coffee
[error] No such setting/task
[error] coffee
[error] ^
> project web
[info] Set current project to web (in build file:/Users/jeffmay/code/righttrack/)
[web] $ coffee
[success] Total time: 0 s, completed Jun 25, 2013 12:08:36 AM
[web] $ show coffee
[info] ArrayBuffer()
[success] Total time: 0 s, completed Jun 25, 2013 12:08:40 AM
Я не видя никаких изменений после запуска команды кофе. Есть идеи, в чем проблема?
Спасибо!