Невозможно запустить проект scalajs-реакции
Я просто пытаюсь настроить реакцию scalajs, используя официальные документы, но столкнулся с проблемой, когда пытался запустить это sbt run
:
[info] Fast optimizing C:\temp\scalajs-react\target\scala-2.12\scala-js-tutorial-fastopt.js
[info] Running org.example.TutorialApp
[error] module.js:471
[error] throw err;
[error] ^
[error]
[error] Error: Cannot find module 'react'
[error] at Function.Module._resolveFilename (module.js:469:15)
[error] at Function.Module._load (module.js:417:25)
[error] at Module.require (module.js:497:17)
[error] at require (internal/module.js:20:19)
[error] at C:\Users\avkar\AppData\Local\Temp\1484704765073-0\react-dom.js:16:24
[error] at Object.<anonymous> (C:\Users\avkar\AppData\Local\Temp\1484704765073-0\react-dom.js:40:3)
[error] at Module._compile (module.js:570:32)
[error] at Object.Module._extensions..js (module.js:579:10)
[error] at Module.load (module.js:487:32)
[error] at tryModuleLoad (module.js:446:12)
org.scalajs.jsenv.ExternalJSEnv$NonZeroExitException: Node.js exited with code 1
at org.scalajs.jsenv.ExternalJSEnv$AbstractExtRunner.waitForVM(ExternalJSEnv.scala:107)
at org.scalajs.jsenv.ExternalJSEnv$ExtRunner.run(ExternalJSEnv.scala:156)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$.org$scalajs$sbtplugin$ScalaJSPluginInternal$$jsRun(ScalaJSPluginInternal.scala:684)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$60$$anonfun$apply$43$$anonfun$apply$44.apply(ScalaJSPluginInternal.scala:771)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$60$$anonfun$apply$43$$anonfun$apply$44.apply(ScalaJSPluginInternal.scala:765)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
[trace] Stack trace suppressed: run 'last compile:run' for the full output.
[error] (compile:run) org.scalajs.jsenv.ExternalJSEnv$NonZeroExitException: Node.js exited with code 1
[error] Total time: 3 s, completed 18.01.2017 8:59:25
У меня есть Node.js на моей машине, но не было никакого модуля "реакции". Итак, я решил установить эти модули из build.sbt
используя команду npm install -g react@15.3.2 react-dom@15.3.2
После этого у меня есть следующий вывод для npm list -g --depth=0
:
+-- bower@1.8.0
+-- react@15.3.2
`-- react-dom@15.3.2
Однако это ничего не меняет. Все та же ошибка вывода для sbt run
Кто-нибудь знает, что это?
1 ответ
Вам не нужно ничего устанавливать в файл node.js напрямую. npm install -g react...
не будет иметь никакого эффекта. Если вы хотите запустить свое приложение, используя sbt run
тогда это будут настройки SBT, через которые вы устанавливаете React.
Документы scalajs-реагируют на то, как установить React через jsDependencies
в SBT. Вы все равно должны прочитать учебник Scala.JS, чтобы найти другие необходимые настройки. Я не пользуюсь sbt run
сам, но в соответствии с руководством вы, вероятно, должны добавить jsDependencies += RuntimeDOM
, бежать npm install jsdom
и, возможно, даже использовать skip in packageJSDependencies := false
,
Если это не сработает, это проблема использования Scala.JS, не относящаяся к scalajs-реагировать.