lihaoyi / workbench-example-app Goto Github PK
View Code? Open in Web Editor NEWAn example application written in ScalaJS using scala-js-dom and scala-js-workbench
An example application written in ScalaJS using scala-js-dom and scala-js-workbench
Upgrading to the most recent Scala.Rx version breaks the samples that were using older version.
Please fix it ! ;)
Hi, I just stumbled over a little problem I have with your little callback extension for event attributes.
with the method in
https://github.com/lihaoyi/workbench-example-app/blob/todomvc/src/main/scala/example/Framework.scala#L107
one can only ever register one callback, because old ones get overridden(i.e. can't register a function to "onclick" and "ondblclick")
Hi,
Just tried to clone the autowire branch and got this issue:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.jsawn#jawn-parser_2.11;0.5.4: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
Cheers
When loading the project with IntelliJ it highlights in red the enablePlugin statement.
Wouldn't it be better to use the multi-project format which is now the recommended way.
import com.lihaoyi.workbench.Plugin._
import sbt.Keys._
workbenchSettings
lazy val example = (project in file("."))
.enablePlugins(ScalaJSPlugin)
.settings(
name := "Example",
version := "0.1-SNAPSHOT",
scalaVersion := "2.11.7",
libraryDependencies ++= Seq(
"org.scala-js" %%% "scalajs-dom" % "0.8.2",
"com.lihaoyi" %%% "scalatags" % "0.5.4"
)
)
updateBrowsers <<= updateBrowsers.triggeredBy(fastOptJS in Compile)
bootSnippet := "example.ScalaJSExample().main(document.getElementById('canvas'));"
if I check out master when I run sbt I have the following dependecies that are not found
error sbt.ResolveException: unresolved dependency: io.spray#spray-can;1.3.0: not found
[error] unresolved dependency: io.spray#spray-routing;1.3.0: not found
[error] unresolved dependency: com.typesafe.play#play-json_2.10;2.2.2: not found
Jozsefs-MBP:workbench-example-app joco$ git checkout todomvc
Branch todomvc set up to track remote branch todomvc from origin.
Switched to a new branch 'todomvc'
Jozsefs-MBP:workbench-example-app joco$ sbt
[info] Loading global plugins from /Users/joco/.sbt/0.13/plugins
[info] Loading project definition from /Users/joco/dev/scala.js/workbench-example-app/project
[info] Updating {file:/Users/joco/dev/scala.js/workbench-example-app/project/}workbench-example-app-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to Example (in build file:/Users/joco/dev/scala.js/workbench-example-app/)
> [WARN] [09/24/2016 19:07:36.875] [Workbench-System-akka.actor.default-dispatcher-2] [akka://Workbench-System/user/IO-HTTP/listener-0] Bind to localhost/127.0.0.1:12345 failed
[INFO] [09/24/2016 19:07:36.885] [Workbench-System-akka.actor.default-dispatcher-4] [akka://Workbench-System/system/IO-TCP/selectors/$a/0] Message [akka.dispatch.sysmsg.DeathWatchNotification] from Actor[akka://Workbench-System/system/IO-TCP/selectors/$a/0#-160808162] to Actor[akka://Workbench-System/system/IO-TCP/selectors/$a/0#-160808162] was not delivered. [1] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
See this thread:
scala-js/scala-js#1140
upgrading to sbt 0.13.5+ should fix the issue of the fastOptJs hanging
I did the get started example and getting following error:
[error] (compile:compile) java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.length()" because "this.text" is null
I have a plain macOS setup with Java 11 and sbt. Other Scala projects based on sbt are running fine.
Cheers,
Martin
Hey, I am trying to do the get started example, but getting the following error:
java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.length()" because "this.text" is null
Project loading failed:
Please help.
hey @lihaoyi
First of all thanks for educating to many of us. I am working through example for server and client and in https://github.com/lihaoyi/workbench-example-app/blob/autowire-akka-http/example/jvm/src/main/scala/example/Server.scala#L21 I found
script(`type`:="text/javascript", src:="/client-fastopt.js")
This is fine for development, but when using sbt-native-packager
, this will break because the file name renames to client-opt.js
> universal:packageBin
[info] Packaging /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/server/target/scala-2.12/server_2.12-0.1-SNAPSHOT-sources.jar ...
[info] Done packaging.
[info] Updating {file:/Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/}server...
[info] Resolving jline#jline;2.14.1 ...
[info] Done updating.
[info] Main Scala API documentation to /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/server/target/scala-2.12/api...
[info] Wrote /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/server/target/scala-2.12/server_2.12-0.1-SNAPSHOT.pom
[info] Packaging /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/server/target/scala-2.12/server_2.12-0.1-SNAPSHOT-web-assets.jar ...
[info] Compiling 3 Scala sources to /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/server/target/scala-2.12/classes...
[info] Done packaging.
model contains 5 documentable templates
[info] Packaging /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/server/target/scala-2.12/server_2.12-0.1-SNAPSHOT.jar ...
[info] Done packaging.
[info] Main Scala API documentation successful.
[info] Packaging /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/server/target/scala-2.12/server_2.12-0.1-SNAPSHOT-javadoc.jar ...
[info] Done packaging.
[info] Wrote /Users/Harit.Himanshu/IdeaProjects/q2/todoMvc-akka-http-scalajs/shared/.jvm/target/scala-2.12/shared_2.12-0.1-SNAPSHOT.pom
[success] Total time: 3 s, completed Jan 17, 2017 3:58:44 PM
>
and
➜ scala-2.12 git:(master) ✗ ls │
api server_2.12-0.1-SNAPSHOT-sources.jar server_2.12-0.1-SNAPSHOT.pom │
classes server_2.12-0.1-SNAPSHOT-web-assets.jar │
server_2.12-0.1-SNAPSHOT-javadoc.jar server_2.12-0.1-SNAPSHOT.jar │
➜ scala-2.12 git:(master) ✗ jar -tvf server_2.12-0.1-SNAPSHOT-web-assets.jar │
25 Tue Jan 17 15:58:42 PST 2017 META-INF/MANIFEST.MF │
0 Tue Jan 17 15:58:42 PST 2017 public/ │
110345 Tue Jan 17 15:51:50 PST 2017 public/client-opt.js │
128 Tue Jan 17 15:58:40 PST 2017 public/client-launcher.js │
How can we fix this? Thanks a lot again
I tried to run your example, but it failed with a "Not a valid re-start" (and 3 other error lines)
Anyway, I've very interested in your example. Please take a look and fix when you get a chance.
Thanks in advance!
Larry Melia
I use IntelliJ IDEA for development and bash terminal for SBT. Occasionally, I can't run both because it will attempt to create two Akka actors with same name. Let me know if it doesn't make sense for you.
Get this when running sbt ~fastOptJS:
[info] Loading project definition from E:\Projects\workbench-example-app\project
[info] Updating {file:/E:/Projects/workbench-example-app/project/}workbench-example-app-build...
[info] Resolving org.scala-js#sbt-scalajs;0.6.6 ...
[info] Resolving org.scala-js#scalajs-tools_2.10;0.6.6 ...
[info] Resolving org.scala-lang#scala-library;2.10.4 ...
[info] Resolving org.scala-js#scalajs-ir_2.10;0.6.6 ...
[info] Resolving com.google.javascript#closure-compiler;v20130603 ...
[info] Resolving args4j#args4j;2.0.16 ...
[info] Resolving com.google.guava#guava;14.0.1 ...
[info] Resolving com.google.protobuf#protobuf-java;2.4.1 ...
[info] Resolving org.json#json;20090211 ...
[info] Resolving com.google.code.findbugs#jsr305;1.3.9 ...
[info] Resolving com.googlecode.json-simple#json-simple;1.1.1 ...
[info] Resolving junit#junit;4.10 ...
[info] Resolving org.hamcrest#hamcrest-core;1.1 ...
[info] Resolving org.scala-js#scalajs-js-envs_2.10;0.6.6 ...
[info] Resolving io.apigee#rhino;1.7R5pre4 ...
[info] Resolving org.webjars#envjs;1.2 ...
[info] Resolving org.scala-js#scalajs-sbt-test-adapter_2.10;0.6.6 ...
[info] Resolving org.scala-sbt#test-interface;1.0 ...
[info] Resolving com.lihaoyi#workbench;0.2.3 ...
[info] Resolving com.lihaoyi#workbench;0.2.3 ...
[warn] module not found: com.lihaoyi#workbench;0.2.3
[warn] ==== typesafe-ivy-releases: tried
[warn] https://repo.typesafe.com/typesafe/ivy-releases/com.lihaoyi/workbench/scala_2.10/sbt_0.13/0.2.3/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn] https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.lihaoyi/workbench/scala_2.10/sbt_0.13/0.2.3/ivys/ivy.xml
[warn] ==== local: tried
[warn] C:\Users\andrewhe.ivy2\local\com.lihaoyi\workbench\scala_2.10\sbt_0.13\0.2.3\ivys\ivy.xml
[warn] ==== artifactory-ivy-proxy-releases: tried
[warn] https://theluggage-agct.gray.net/artifactory/ivy-remote-repo/com.lihaoyi/workbench/scala_2.10/sbt_0.13/0.2.3/ivys/ivy.xml
[warn] ==== artifactory-maven-proxy-releases: tried
[warn] https://theluggage-agct.gray.net/artifactory/maven-remote-repo/com/lihaoyi/workbench_2.10_0.13/0.2.3/workbench-0.2.3.pom
[info] Resolving org.scala-sbt#sbt;0.13.7 ...
[info] Resolving org.scala-sbt#main;0.13.7 ...
[info] Resolving org.scala-sbt#actions;0.13.7 ...
[info] Resolving org.scala-sbt#classpath;0.13.7 ...
[info] Resolving org.scala-lang#scala-compiler;2.10.4 ...
[info] Resolving org.scala-lang#scala-reflect;2.10.4 ...
[info] Resolving org.scala-sbt#launcher-interface;0.13.7 ...
[info] Resolving org.scala-sbt#interface;0.13.7 ...
[info] Resolving org.scala-sbt#io;0.13.7 ...
[info] Resolving org.scala-sbt#control;0.13.7 ...
[info] Resolving org.scala-sbt#completion;0.13.7 ...
[info] Resolving org.scala-sbt#collections;0.13.7 ...
[info] Resolving jline#jline;2.11 ...
[info] Resolving org.scala-sbt#api;0.13.7 ...
[info] Resolving org.scala-sbt#compiler-integration;0.13.7 ...
[info] Resolving org.scala-sbt#incremental-compiler;0.13.7 ...
[info] Resolving org.scala-sbt#logging;0.13.7 ...
[info] Resolving org.scala-sbt#process;0.13.7 ...
[info] Resolving org.scala-sbt#relation;0.13.7 ...
[info] Resolving org.scala-sbt#compile;0.13.7 ...
[info] Resolving org.scala-sbt#persist;0.13.7 ...
[info] Resolving org.scala-tools.sbinary#sbinary_2.10;0.4.2 ...
[info] Resolving org.scala-sbt#classfile;0.13.7 ...
[info] Resolving org.scala-sbt#compiler-ivy-integration;0.13.7 ...
[info] Resolving org.scala-sbt#ivy;0.13.7 ...
[info] Resolving org.scala-sbt#cross;0.13.7 ...
[info] Resolving org.scala-sbt.ivy#ivy;2.3.0-sbt-fccfbd44c9f64523b61398a0155784dcbaeae28f ...
[info] Resolving com.jcraft#jsch;0.1.46 ...
[info] Resolving org.json4s#json4s-native_2.10;3.2.10 ...
[info] Resolving org.json4s#json4s-core_2.10;3.2.10 ...
[info] Resolving org.json4s#json4s-ast_2.10;3.2.10 ...
[info] Resolving com.thoughtworks.paranamer#paranamer;2.6 ...
[info] Resolving org.scala-lang#scalap;2.10.0 ...
[info] Resolving org.spire-math#jawn-parser_2.10;0.6.0 ...
[info] Resolving org.spire-math#json4s-support_2.10;0.6.0 ...
[info] Resolving org.scala-sbt#run;0.13.7 ...
[info] Resolving org.scala-sbt#task-system;0.13.7 ...
[info] Resolving org.scala-sbt#tasks;0.13.7 ...
[info] Resolving org.scala-sbt#tracking;0.13.7 ...
[info] Resolving org.scala-sbt#cache;0.13.7 ...
[info] Resolving org.scala-sbt#testing;0.13.7 ...
[info] Resolving org.scala-sbt#test-agent;0.13.7 ...
[info] Resolving org.scala-sbt#main-settings;0.13.7 ...
[info] Resolving org.scala-sbt#apply-macro;0.13.7 ...
[info] Resolving org.scala-sbt#command;0.13.7 ...
[info] Resolving org.scala-sbt#logic;0.13.7 ...
[info] Resolving org.scala-sbt#compiler-interface;0.13.7 ...
[info] Resolving org.scala-sbt#precompiled-2_8_2;0.13.7 ...
[info] Resolving org.scala-sbt#precompiled-2_9_2;0.13.7 ...
[info] Resolving org.scala-sbt#precompiled-2_9_3;0.13.7 ...
[info] Resolving org.scala-lang#jline;2.10.4 ...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.lihaoyi#workbench;0.2.3: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] com.lihaoyi:workbench:0.2.3 (sbtVersion=0.13, scalaVersion=2.10)
[warn]
[warn] Note: Unresolved dependencies path:
[warn] com.lihaoyi:workbench:0.2.3 (sbtVersion=0.13, scalaVersion=2.10) (E:\Projects\workbench-example-app\project\build.sbt#L3-4)
[warn] +- default:workbench-example-app-build:0.1-SNAPSHOT (sbtVersion=0.13, scalaVersion=2.10)
sbt.ResolveException: unresolved dependency: com.lihaoyi#workbench;0.2.3: not found
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:278)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:175)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:157)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:151)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:151)
at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:128)
at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:56)
at sbt.IvySbt$$anon$4.call(Ivy.scala:64)
at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93)
at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78)
at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97)
at xsbt.boot.Using$.withResource(Using.scala:10)
at xsbt.boot.Using$.apply(Using.scala:9)
at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)
at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)
at xsbt.boot.Locks$.apply0(Locks.scala:31)
at xsbt.boot.Locks$.apply(Locks.scala:28)
at sbt.IvySbt.withDefaultLogger(Ivy.scala:64)
at sbt.IvySbt.withIvy(Ivy.scala:123)
at sbt.IvySbt.withIvy(Ivy.scala:120)
at sbt.IvySbt$Module.withModule(Ivy.scala:151)
at sbt.IvyActions$.updateEither(IvyActions.scala:157)
at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1318)
at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1315)
at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$85.apply(Defaults.scala:1345)
at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$85.apply(Defaults.scala:1343)
at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:35)
at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1348)
at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1342)
at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:45)
at sbt.Classpaths$.cachedUpdate(Defaults.scala:1360)
at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1300)
at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1275)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
error sbt.ResolveException: unresolved dependency: com.lihaoyi#workbench;0.2.3: not found
package name in workbench changed.
-import scala.js.workbench.Plugin._
+import com.lihaoyi.workbench.Plugin._
Hi,
the todoMVC example does not compile due to an implicit conversion conflict:
found : org.scalajs.dom.HTMLInputElement
[error] required: scalatags.JsDom.Node
[error] (which expands to) scalatags.generic.Node[org.scalajs.dom.Element]
[error] Note that implicit conversions are not applicable because they are ambiguous:
[error] both method bindElement in trait LowPriorityImplicits of type (e: org.scalajs.dom.Element)scalatags.generic.Node[org.scalajs.dom.Element]
[error] and method NumericNode in object JsDom of type [T](u: T)(implicit evidence$1: Numeric[T])scalatags.JsDom.StringNode
[error] are possible conversion functions from org.scalajs.dom.HTMLInputElement to scalatags.JsDom.Node
[error] inputBox,
Quite new to both scala and sbt I've been successful with a project of my own using your hands-on-scala-js:
my source and live demo
So now I wanted to move on to the next project but it builds neither with a copy of my build.sbt nor with yours, neither on my mac, nor with github's powershell on windows nor with github's bash.
Your project does compile with github's powershell on windows, but not with github's bash:
~/Documents/GitHub/workbench-example-app (master)
$ sbt ~fastOptJS
[info] Loading project definition from C:\Users\MyName\Documents\GitHub\workbench-example-app\project
[info] Set current project to Example (in build file:/C:/Users/MyName/Documents/GitHub/workbench-example-app/)
[error] Expected key
[error] Expected '*'
[error] c:/Users/MyName
[error] ^
My first project used to compile on my mac, but doesn't on windows, even not with github's powershell:
C:\Users\MyName\Documents\GitHub\DiBL\web\grids [master +1 ~0 -0 !]> sbt ~fastOptJS
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
C:\Users\MyName\Documents\GitHub\DiBL\web\grids\build.sbt:1: error: not found: value emitSourceMaps
(emitSourceMaps in fullOptJS) := false
^
[error] Type error in expression
Some version info:
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) Client VM (build 25.40-b25, mixed mode)
sbt launcher version 0.13.8
Any suggestions?
The link for localhost in README should say 2.11 not 2.10 now that you upgraded the scala version.
I'm getting error when trying to compile akka-http demo:
workbench-example-app/example/jvm/src/main/scala/example/Server.scala:56: type mismatch; [error] found : akka.http.scaladsl.server.Directive1[String] [error] (which expands to) akka.http.scaladsl.server.Directive[(String,)] [error] required: akka.http.scaladsl.server.RequestContext => ? [error] extract(entity(as[String])) { e => [error] ^ [error] one error found
It still references
packageJS
and optimizeJS
instead of fastOptJS
and fullOptJS
(it might also be a good idea to set the Scala version to 2.11.1)
Any suggestions? (I know very little scala and am not too familiar with sbt).
Full error:
java.io.IOException: This version (0.5.5) of Scala.js IR is not supported. Supported versions are: 0.5.0, 0.5.2, 0.5.3
at scala.scalajs.ir.InfoSerializers$Deserializer.readHeader(InfoSerializers.scala:172)
at scala.scalajs.ir.InfoSerializers$Deserializer.deserializeFull(InfoSerializers.scala:120)
at scala.scalajs.ir.InfoSerializers$.deserializeVersionFullInfo(InfoSerializers.scala:43)
at scala.scalajs.ir.InfoSerializers$.deserializeFullInfo(InfoSerializers.scala:35)
at scala.scalajs.tools.io.VirtualSerializedScalaJSIRFile$class.info(VirtualFiles.scala:128)
at scala.scalajs.tools.io.FileVirtualScalaJSIRFile.info(FileVirtualFiles.scala:143)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer$PersistentIRFile.updateFile(ScalaJSOptimizer.scala:443)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer$PersistentState.getPersistentIRFile(ScalaJSOptimizer.scala:403)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer$$anonfun$scala$scalajs$tools$optimizer$ScalaJSOptimizer$$readAllData$1.apply(ScalaJSOptimizer.scala:136)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer$$anonfun$scala$scalajs$tools$optimizer$ScalaJSOptimizer$$readAllData$1.apply(ScalaJSOptimizer.scala:136)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer.scala$scalajs$tools$optimizer$ScalaJSOptimizer$$readAllData(ScalaJSOptimizer.scala:136)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer$$anonfun$2.apply(ScalaJSOptimizer.scala:69)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer$$anonfun$2.apply(ScalaJSOptimizer.scala:69)
at scala.scalajs.tools.optimizer.IncOptimizer$.logTime(IncOptimizer.scala:731)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer.optimizeIR(ScalaJSOptimizer.scala:68)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer$$anonfun$optimizeCP$1.apply$mcV$sp(ScalaJSOptimizer.scala:56)
at scala.scalajs.tools.io.CacheUtils$.cached(CacheUtils.scala:39)
at scala.scalajs.tools.optimizer.ScalaJSOptimizer.optimizeCP(ScalaJSOptimizer.scala:54)
at scala.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$21.apply(ScalaJSPluginInternal.scala:194)
at scala.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$21.apply(ScalaJSPluginInternal.scala:181)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
at sbt.std.Transform$$anon$4.work(System.scala:64)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
at sbt.Execute.work(Execute.scala:244)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
[error] (compile:fastOptJS) java.io.IOException: This version (0.5.5) of Scala.js IR is not supported. Supported versions are: 0.5.0, 0.5.2, 0.5.3
Hi,
some implicit conversion no longer work in the TodoMVC example with the 0.3.8 version of scalatags.
Mathieu
See conversation in gitter here: https://gitter.im/lihaoyi/workbench-example-app?at=582137e7e097df757583323e
updateBrowsers
is a holdover from the days when thepackageJS
blob was 20mb and took chrome 10-20s to parse and execute
Hi,
do you plan to embed the very useful Framework object in any lib ? For now, I have no other option than copy / paste it in my project.
Thanks
Hi,
I saw the impressive demo you did at the Scaladays and I would like to get the TodoMVC sources but I cannot find it. Is it available on any repository ?
Thanks
Mathieu
It would be nice to have the todomvc example be part of the 'Compiled-to-JS' list at todomvc.com. If you submit it, they can review it and will at least consider putting it into their collection of examples under their wiki.
There are instructions on how to submit it via the 'getting started' heading on the lower lefthand side of the page.
Many developers don't realize how capable the current version of scala.js actually is. This could help bring more visibility to the project.
The refreshBrowsers
feature does not work in the jvm-js-shared
branch example.
When sbt is run using ~re-start
the expected behavior is that the browser reloads after a change to the JS-file. However, a manual refresh is needed.
I assume this is because refreshBrowsers
is by default triggered after fastOptJS
, but this is too early and we would need a trigger after the server restarted.
However, what surprises me that if I make another the change the refresh does not pick up the first change.
I'm not able to start the example as instructed in the README:
> sen@host:~/temp/workbench-example-app$ sbt ~re-start
Loading /usr/share/sbt/bin/sbt-launch-lib.bash
[info] Loading global plugins from /home/sen/.sbt/0.13/plugins
[info] Loading project definition from /home/sen/temp/workbench-example-app/project
[info] Set current project to Example (in build file:/home/sen/temp/workbench-example-app/)
[INFO] [09/09/2014 15:33:31.399] [SystemLol-akka.actor.default-dispatcher-4] [akka://SystemLol/user/IO-HTTP/listener-0] Bound to localhost/127.0.0.1:12345
[error] Not a valid command: re-start
[error] Not a valid project ID: re-start
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: re-start (similar: state, startYear, cross-target)
[error] re-start
[error] ^
1. Waiting for source changes... (press enter to interrupt)
Jozsefs-MBP:workbench-example-app joco$ git status
On branch todomvc
Your branch is up-to-date with 'origin/todomvc'.
nothing to commit, working directory clean
Jozsefs-MBP:workbench-example-app joco$ sbt
[info] Loading global plugins from /Users/joco/.sbt/0.13/plugins
[info] Loading project definition from /Users/joco/dev/scala.js/workbench-example-app/project
[info] Set current project to Example (in build file:/Users/joco/dev/scala.js/workbench-example-app/)
> [INFO] [09/24/2016 19:23:20.652] [Workbench-System-akka.actor.default-dispatcher-4] [akka://Workbench-System/user/IO-HTTP/listener-0] Bound to localhost/127.0.0.1:12345
> fastOptJS
[warn] Scala version was updated by one of library dependencies:
[warn] * org.scala-lang:scala-library:2.11.4 -> 2.11.5
[warn] To force scalaVersion, add the following:
[warn] ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) }
[warn] Run 'evicted' to see detailed eviction warnings
[info] Fast optimizing /Users/joco/dev/scala.js/workbench-example-app/target/scala-2.11/example-fastopt.js
[info] workbench: Checking example-fastopt.js
[info] workbench: Checking example-jsdeps.js
[info] workbench: Refreshing http://localhost:12345/target/scala-2.11/example-fastopt.js
[trace] Stack trace suppressed: run last compile:fastOptJS for the full output.
[error] (compile:fastOptJS) java.io.IOException: Failed to deserialize info of /Users/joco/dev/scala.js/workbench-example-app/target/scala-2.11/classes/example/Point$.sjsir
[error] Total time: 1 s, completed Sep 24, 2016 7:23:26 PM
> last compile:fastOptJS
[info] Fast optimizing /Users/joco/dev/scala.js/workbench-example-app/target/scala-2.11/example-fastopt.js
java.io.IOException: Failed to deserialize info of /Users/joco/dev/scala.js/workbench-example-app/target/scala-2.11/classes/example/Point$.sjsir
at org.scalajs.core.tools.io.VirtualSerializedScalaJSIRFile$class.info(VirtualFiles.scala:135)
at org.scalajs.core.tools.io.FileVirtualScalaJSIRFile.info(FileVirtualFiles.scala:157)
at org.scalajs.core.tools.optimizer.Linker$PersistentIRFile.updateFile(Linker.scala:309)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$16.apply(Linker.scala:271)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$16.apply(Linker.scala:268)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at org.scalajs.core.tools.optimizer.Linker.org$scalajs$core$tools$optimizer$Linker$$updateFiles(Linker.scala:268)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$1.apply(Linker.scala:49)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$1.apply(Linker.scala:49)
at org.scalajs.core.tools.optimizer.package$.logTime(package.scala:19)
at org.scalajs.core.tools.optimizer.Linker.link(Linker.scala:49)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer$$anonfun$1.apply(ScalaJSOptimizer.scala:106)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer$$anonfun$1.apply(ScalaJSOptimizer.scala:106)
at org.scalajs.core.tools.optimizer.package$.logTime(package.scala:19)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer.optimizeIR(ScalaJSOptimizer.scala:105)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer.optimizeIR(ScalaJSOptimizer.scala:89)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer$$anonfun$optimizeCP$1.apply$mcV$sp(ScalaJSOptimizer.scala:65)
at org.scalajs.core.tools.io.CacheUtils$.cached(CacheUtils.scala:41)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer.optimizeCP(ScalaJSOptimizer.scala:63)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$14.apply(ScalaJSPluginInternal.scala:145)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$14.apply(ScalaJSPluginInternal.scala:129)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: This version (0.6.6) of Scala.js IR is not supported. Supported versions are: 0.6.0
at org.scalajs.core.ir.InfoSerializers$Deserializer.readHeader(InfoSerializers.scala:149)
at org.scalajs.core.ir.InfoSerializers$Deserializer.deserialize(InfoSerializers.scala:100)
at org.scalajs.core.ir.InfoSerializers$.deserializeWithVersion(InfoSerializers.scala:35)
at org.scalajs.core.ir.InfoSerializers$.deserialize(InfoSerializers.scala:31)
at org.scalajs.core.tools.io.VirtualSerializedScalaJSIRFile$class.info(VirtualFiles.scala:132)
at org.scalajs.core.tools.io.FileVirtualScalaJSIRFile.info(FileVirtualFiles.scala:157)
at org.scalajs.core.tools.optimizer.Linker$PersistentIRFile.updateFile(Linker.scala:309)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$16.apply(Linker.scala:271)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$16.apply(Linker.scala:268)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at org.scalajs.core.tools.optimizer.Linker.org$scalajs$core$tools$optimizer$Linker$$updateFiles(Linker.scala:268)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$1.apply(Linker.scala:49)
at org.scalajs.core.tools.optimizer.Linker$$anonfun$1.apply(Linker.scala:49)
at org.scalajs.core.tools.optimizer.package$.logTime(package.scala:19)
at org.scalajs.core.tools.optimizer.Linker.link(Linker.scala:49)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer$$anonfun$1.apply(ScalaJSOptimizer.scala:106)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer$$anonfun$1.apply(ScalaJSOptimizer.scala:106)
at org.scalajs.core.tools.optimizer.package$.logTime(package.scala:19)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer.optimizeIR(ScalaJSOptimizer.scala:105)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer.optimizeIR(ScalaJSOptimizer.scala:89)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer$$anonfun$optimizeCP$1.apply$mcV$sp(ScalaJSOptimizer.scala:65)
at org.scalajs.core.tools.io.CacheUtils$.cached(CacheUtils.scala:41)
at org.scalajs.core.tools.optimizer.ScalaJSOptimizer.optimizeCP(ScalaJSOptimizer.scala:63)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$14.apply(ScalaJSPluginInternal.scala:145)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$14.apply(ScalaJSPluginInternal.scala:129)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[error] (compile:fastOptJS) java.io.IOException: Failed to deserialize info of /Users/joco/dev/scala.js/workbench-example-app/target/scala-2.11/classes/example/Point$.sjsir
>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.