japgolly / scalajs-react

Facebook's React on Scala.JS
https://japgolly.github.io/scalajs-react/
Apache License 2.0
1.64k stars 231 forks source link

Error during the generation of source maps for Scala 3 with `scalajs-bundler` #1038

Closed nikololiahim closed 2 years ago

nikololiahim commented 2 years ago

Running sbt fastOptJS / webpack in this project produces the following output:

sbt error logs ``` [IJ]fastOptJS / webpack [info] compiling 1 Scala source to C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\classes ... [info] done compiling [info] Fast optimizing C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\trash-talk-bot-frontend-fastopt [info] Writing scalajs.webpack.config.js [info] Bundling the application with its NPM dependencies [error] C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-map-generator.js:298 [error] throw new Error('Invalid mapping: ' + JSON.stringify({ [error] ^ [error] Error: Invalid mapping: {"generated":{"line":44868,"column":84},"source":"https://raw.githubusercontent.com/japgolly/scalajs-react/v2.0.1/util/src/main/scala/japgolly/scalajs/react/util/Semigroup.scala","original":{"line":2,"column":-1},"name":null} [error] at SourceMapGenerator_validateMapping [as _validateMapping] (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-map-generator.js:298:13) [error] at SourceMapGenerator_addMapping [as addMapping] (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-map-generator.js:110:12) [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-node.js:351:13 [error] at SourceNode_walk [as walk] (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-node.js:230:9) [error] at SourceNode_walk [as walk] (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-node.js:226:13) [error] at SourceNode_walk [as walk] (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-node.js:226:13) [error] at SourceNode_toStringWithSourceMap [as toStringWithSourceMap] (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\source-map\lib\source-node.js:342:8) [error] at ConcatSource.proto.sourceAndMap (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack-sources\lib\SourceAndMapMixin.js:29:32) [error] at CachedSource.sourceAndMap (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack-sources\lib\CachedSource.js:58:31) [error] at getTaskForFile (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\SourceMapDevToolPlugin.js:37:30) [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\SourceMapDevToolPlugin.js:136:20 [error] at Array.forEach () [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\SourceMapDevToolPlugin.js:130:12 [error] at SyncHook.eval [as call] (eval at create (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\HookCodeFactory.js:19:10), :7:1) [error] at SyncHook.lazyCompileHook (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\Hook.js:154:20) [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\Compilation.js:1319:42 [error] at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\HookCodeFactory.js:33:10), :6:1) [error] Failure on parsing the output of webpack: No content to map due to end-of-input [error] at [Source: java.io.BufferedInputStream@6bf6fd8d; line: 1, column: 0] [error] at AsyncSeriesHook.lazyCompileHook (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\Hook.js:154:20) [error] You can try to manually execute the command [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\Compilation.js:1315:36 [error] node C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\bin\webpack --bail --profile --json --config C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\scalajs.webpack.config.js [error] at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\HookCodeFactory.js:33:10), :6:1) [error] [error] at AsyncSeriesHook.lazyCompileHook (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\Hook.js:154:20) [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\Compilation.js:1311:32 [error] at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\HookCodeFactory.js:33:10), :6:1) [error] at AsyncSeriesHook.lazyCompileHook (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\Hook.js:154:20) [error] at Compilation.seal (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\Compilation.js:1248:27) [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\Compiler.js:625:18 [error] at C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\Compilation.js:1171:4 [error] at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\HookCodeFactory.js:33:10), :15:1) [error] at AsyncSeriesHook.lazyCompileHook (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\tapable\lib\Hook.js:154:20) [error] at Compilation.finish (C:\Users\╨Р╨╗╨╡╨║╤Б╨░╨╜╨┤╤А ╨Ю╨╗╨╛╨║╨╕╨╜\IdeaProjects\trash-talk-bot-frontend\target\scala-3.1.1\scalajs-bundler\main\node_modules\webpack\lib\Compilation.js:1163:28) [error] stack trace is suppressed; run 'last Compile / fastOptJS' for the full output [error] (Compile / fastOptJS / webpack) Non-zero exit code: 1 [error] Total time: 22 s, completed 6 ╤Д╨╡╨▓╤А. 2022 ╨│., 23:07:34 ```

However, when I change scalaVersion := 3.1.1 to scalaVersion := 2.13.6 in build.sbt everything works just fine.

japgolly commented 2 years ago

Thanks for raising @nikololiahim but I believe this is an issue for scalajs-bundler, and not scalajs-react.

nikololiahim commented 2 years ago

Ok, then I will forward it there too, thank you for the quick reply!

japgolly commented 2 years ago

No worries. Unfortunately all I can say is that I've looked at Semigroup.scala and it's pretty normal and valid Scala. I just had a thought that it might be a Scala.js issue if it's generating an invalid source map. 🤷

nikololiahim commented 2 years ago

Yeah, it also may be true. I will try to setup a different bundler (looking at snowpack) and try to reproduce the results. If it still fails, then it's the issue with Scala.js support of Scala 3. If not, then the problem was scalajs-bundler.

nikololiahim commented 2 years ago

@japgolly After transitioning to snowpack I encountered no such problems. Seems like scalajs-bundler is indeed the problem here. Closing the issue now, thanks for help!

japgolly commented 2 years ago

Aaaaahhh, ok good to know. Thanks and glad to hear you've worked around it 👍️