觀察不同的源代碼在交叉的Scala JS服務器/客戶端項目中,我想要更改某些源以重新啓動服務器和其他源以觸發打包過程,但不重新啓動。不同的任務將無濟於事,因爲他們只會做一個或另一個,我同時需要兩個任務。SBT - 根據任務
詳細信息: 我有一個Scala.js crossProject。我使用以下,以確保服務器可以服務內置JavScript:
val app = crossProject.settings(...)
lazy val appJS = app.js
lazy val jsFile = fastOptJS in(appJS, Compile)
lazy val appJVM = app.jvm.settings(
(resources in Compile) += jsFile.value.data,
(resources in Compile) += jsFile.value.data.toPath.resolveSibling(jsFile.value.data.name+".map").toFile,
(resources in Compile) += (packageJSDependencies in(appJS, Compile)).value
)
如果我運行~ appJVM/compile:packageBin::packageConfiguration
然後改到JavaScript源立即編譯並放置在appJVM目標/類目錄,所以刷新瀏覽器獲取我的新代碼 - 非常出色。
但是,如果我編輯服務器端代碼,我還想使用sbt-revolver插件重新啓動服務器。但有蹭 - 如果我使用~ ;appJVM/compile:packageBin::packageConfiguration;appJVM/reStart
然後更改到客戶端源重新啓動服務器,我不想。但是,如果我從傳遞監視中刪除客戶端項目,那麼它不會再通知我是否更改了客戶端項目。
有沒有一種方法來定義每個任務不同的watchTransitiveSources?
更一般地說 - 我完全不想使用'''''',而是創建一個任務,任意一組文件,並在每次更改時運行一些其他任務,但是我的谷歌搜索會讓我失望 - 我無法找到某個人做這件事的例子。 –
我認爲你的問題可以寫得更簡單。另外,不要暗示答案,但描述你的需要。如果我理解正確,則需要更改某些源以重新啓動服務器和其他源以觸發打包過程,但無需重新啓動。不同的任務不會有幫助,因爲他們只會做一個或另一個,並且你想在同一時間。那是對的嗎? – Atais
是的,這是正確的。我會將我的開篇段落改爲你的措詞。 –