diff --git a/.gitignore b/.gitignore index 80e4de2..1d30127 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ Network Trash Folder Temporary Items .apdisk /bin/ +target/ +/.idea/ diff --git a/.travis.yml b/.travis.yml index b701c54..99f3465 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,4 +2,4 @@ language: scala script: - sbt fullOptJS scala: - - 2.11.8 + - 2.12.8 diff --git a/README.md b/README.md index 89f484e..fe6d007 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ This should download dependencies and prepare the relevant javascript files. It then kicks off a web server to serve the html and JS files. If you open -[localhost:12345/target/scala-2.11/classes/index-dev.html](http://localhost:12345/target/scala-2.11/classes/index-dev.html) in your browser, it will show you a sample app, doing various bindings and Scala code. Its not meant to be pretty, simply instructive. Do open the Console to see debug messages. +[localhost:12345/target/scala-2.12/classes/index-dev.html](http://localhost:12345/target/scala-2.12/classes/index-dev.html) in your browser, it will show you a sample app, doing various bindings and Scala code. Its not meant to be pretty, simply instructive. Do open the Console to see debug messages. ## Demo @@ -40,10 +40,6 @@ of the final application, useful for final publication. You may well need to cop -## Eclipse integration - -If you want to edit in Eclipse (can't compile yet, but still very useful having full IDE with code completion), just run `sbt eclipse` the open the generated .project file inside eclipse. Keep sbt running in order to do the JS Compile. [https://github.com/typesafehub/sbteclipse/wiki](https://github.com/typesafehub/sbteclipse/wiki) - ## Status This is just a quick proof of concept and some bindings for those wanting to use Vue.js from Scala.js. Feel free to get in contact with any issues etc. diff --git a/build.sbt b/build.sbt index 92089b5..feb789b 100644 --- a/build.sbt +++ b/build.sbt @@ -1,20 +1,12 @@ -import com.lihaoyi.workbench.Plugin._ - -enablePlugins(ScalaJSPlugin) - -workbenchSettings +enablePlugins(ScalaJSPlugin, WorkbenchPlugin) name := "Scala.js+Vue.js example" -version := "2.2.4" +version := "2.6.10" -scalaVersion := "2.11.8" +scalaVersion := "2.12.8" libraryDependencies ++= Seq( - "org.scala-js" %%% "scalajs-dom" % "0.9.1" + "org.scala-js" %%% "scalajs-dom" % "0.9.7" ) -bootSnippet := "" - -updateBrowsers <<= updateBrowsers.triggeredBy(fastOptJS in Compile) - diff --git a/project/build.properties b/project/build.properties index 748703f..c0bab04 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=0.13.7 +sbt.version=1.2.8 diff --git a/project/plugins.sbt b/project/plugins.sbt index 36e4eb0..2f8d2c0 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,5 +1,3 @@ -addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.28") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.14") - -addSbtPlugin("com.lihaoyi" % "workbench" % "0.2.3") \ No newline at end of file +addSbtPlugin("com.lihaoyi" % "workbench" % "0.4.1") \ No newline at end of file diff --git a/src/main/resources/index-dev.html b/src/main/resources/index-dev.html index e89e6e9..5e06768 100644 --- a/src/main/resources/index-dev.html +++ b/src/main/resources/index-dev.html @@ -82,18 +82,19 @@ - +
- +
- diff --git a/src/main/scala/com/felstar/scalajs/vue/Vue.scala b/src/main/scala/com/felstar/scalajs/vue/Vue.scala index 445698d..4cc1e11 100644 --- a/src/main/scala/com/felstar/scalajs/vue/Vue.scala +++ b/src/main/scala/com/felstar/scalajs/vue/Vue.scala @@ -4,9 +4,10 @@ import scala.scalajs.js import org.scalajs.dom import org.scalajs.dom._ -import js.annotation.JSName +import js.annotation._ @js.native + @JSGlobal class Vue extends js.Object { def this(obj: js.Any) = this() // instance properties @@ -65,11 +66,13 @@ import js.annotation.JSName } @js.native + @JSGlobal class Unwatch extends js.Object { def unwatch:Unit =js.native } @js.native + @JSGlobal object Vue extends js.Object{ def config:js.Dynamic=js.native def extend(obj:js.Any):Vue=js.native @@ -94,6 +97,7 @@ import js.annotation.JSName } @js.native + @JSGlobal class Directive extends js.Object { val name:String =js.native val rawName:String =js.native diff --git a/src/main/scala/example/Todo.scala b/src/main/scala/example/Todo.scala index cc807e8..516b39b 100644 --- a/src/main/scala/example/Todo.scala +++ b/src/main/scala/example/Todo.scala @@ -10,13 +10,13 @@ import js.Dynamic.literal import com.felstar.scalajs.vue._ import org.scalajs.dom.raw.HTMLElement -import js.annotation.JSName +import js.annotation._ -@JSExport +@JSExportTopLevel("example.Todo") object Todo extends { @js.native - trait DemoVue extends Vue{ + trait DemoVue extends Vue{ var title:String=js.native var n:Double=js.native var todos:js.Array[DemoVueTodo]=js.native