Когда я впервые обнаружил webJars несколько месяцев назад, я был очень скептичен, что было бы жизнеспособным способом обработки клиентских зависимостей, учитывая огромную сложность некоторых из этих сборщиков/сборных систем и учитывая частоту, которая js
публикуются. Вторая проблема была, конечно, не обоснованной, но я чувствую себя оправданным в первую очередь, потратив почти 36 часов, тщетно пытаясь получить около 10 scss/css/less
-типов webJars и 8 JS webJars, чтобы жить под одной крышей jsDependencies
.
То, что я обнаружил, когда вы достигли зависимости JS 3, 4 или 5, вы начинаете входить в смешной цикл timekill:
1. "Oh nos! FastOptJS потерпел неудачу, потому что был некоторый случайный файл, который также был назван так же, как и зависимость в webjar!"
[trace] Stack trace suppressed: run last client/compile:resolvedJSDependencies for the full output.
[error] (client/compile:resolvedJSDependencies) org.scalajs.core.tools.jsdep.JSLibResolveException: Some references to JS libraries could not be resolved:
[error] - Ambiguous reference to a JS library: bootstrap.min.js
[error] Possible paths found on the classpath:
[error] - META-INF/resources/webjars/bootstrap/3.3.6/js/bootstrap.min.js
[error] - META-INF/resources/webjars/bootstrap3-dialog/1.34.4/examples/assets/bootstrap/js/bootstrap.min.js
[error] originating from: client:compile, client:compile, client:compile, client:compile
[error] - Ambiguous reference to a JS library: bootstrap.js
[error] Possible paths found on the classpath:
[error] - META-INF/resources/webjars/bootstrap3-dialog/1.34.4/examples/assets/bootstrap/js/bootstrap.js
[error] - META-INF/resources/webjars/bootstrap/3.3.6/js/bootstrap.js
[error] originating from: client:compile, client:compile, client:compile, client:compile
2. Я знаю что делать! Я добавлю версию к определенному js!
lazy val webjarbs = "org.webjars" % "bootstrap" % version.bootstrap / s"${version.bootstrap}/bootstrap.js" minified s"${version.bootstrap}/bootstrap.min.js" dependsOn "jquery.js" commonJSName "bootstrap"
3. "О нет! FastOptJS не удалось!"
[trace] Stack trace suppressed: run last client/compile:resolvedJSDependencies for the full output.
[error] (client/compile:resolvedJSDependencies) org.scalajs.core.tools.jsdep.JSLibResolveException: Some references to JS libraries could not be resolved:
[error] - Missing JS library: 3.3.6/bootstrap.js
[error] originating from: client:compile, client:compile, client:compile, client:compile
[error] - Missing JS library: 3.3.6/bootstrap.min.js
[error] originating from: client:compile, client:compile, client:compile, client:compile
gg boys.
Это происходит снова и снова, и вокруг, и затем я должен начать делать
lazy val bs_sidebar = ( "org.webjars" % "bootstrap-sidebar" % version.bs_sidebar intransitive()) / "js/sidebar.js" dependsOn(s"bootstrap.js", s"bootstrap.min.js")
и теперь я даже не использую webjar, но у него есть зависимость js с именем X, и я не могу изменить это...
Вопрос
Ммм? Что делать, если я просто делал то, что раньше делал, но создавал зависимости без приложения в какой-то гигантский файл или набор файлов, а затем загружал их в сборку? У меня есть доказательство концепции из онлайн, и я получил его работу (я думаю, что это был https://github.com/wav/material-ui-scalajs-react/blob/master/src/main/scala/wav/web/muiwrapper/package.scala), который почти сработал, и дал мне эту идею.
Я знаю, что npm
работает намного лучше, чем sbt,
, и я все еще могу получить его в свой пакет... что недостаток, а я что-то пропустил о sbt?