2017-02-02 2 views
0

Ich kann ganz gut jQuery von Scala.js verwenden:Wie importiere ich UglifyJS von Scala.js?

jsDependencies += "org.webjars" % "jquery" % "2.2.1"/"jquery.js" minified "jquery.min.js" 

Jetzt würde ich UglifyJS und seine webjar Struktur scheint anders etwas verwenden möchten. Es scheint keine verkleinertes js Datei zu sein, und auch die Hauptdatei, die wahrscheinlich die komplette Bibliothek enthält sieht anders aus, es keine .js Erweiterung hat und es beginnt mit folgenden Zeilen:

#! /usr/bin/env node 
// -*- js -*- 

"use strict"; 

var UglifyJS = require("../tools/node"); 

diese webjar verwendet von Scala werden können. js überhaupt, und wenn es kann, wie? Ich habe versucht, folgende, aber es hat nicht funktioniert:

jsDependencies += "org.webjars" % "uglifyjs" % "2.7.4"/"bin/uglifyjs" 

Mit dieser Linie SBT Fehler war:

[Fehler] (Test: resolvedJSDependencies) org.scalajs.core.tools.jsdep.JSLibResolveException : Einige Verweise auf JS Bibliotheken konnte nicht aufgelöst werden:

[Fehler] - Fehlende JS-Bibliothek: bin/uglifyjs

[Fehler] mit Ursprung aus: scalafromjs: test, scalafromjs: kompilieren

Antwort

1

Uglify wird als uglify-js, nicht uglifyjs veröffentlicht. Auch ein Webjar wurde nicht für Version 2.7.4 erstellt, es gibt jedoch einen für 2.7.5.

Sie können die automatische Erstellung eines Webjar für 2.7.4 in wenigen Klicks auf http://www.webjars.org/npm anfordern, wenn Sie diese spezifische Version benötigen.

Wenn Sie auf die Webjars-Website gehen und nach "uglify-js" suchen, sehen Sie die Abhängigkeitskonfiguration, die Sie verwenden müssen: "org.webjars.npm" % "uglify-js" % "2.7.5" (plus die gewünschte Datei).


anzumerken, dass, wie von 0.6.14 Scala.js NPM-Module unterstützt scalajs-bundler verwenden.

Dieses neue System ist Webjars bei weitem überlegen - Sie haben ALLE npm Module und Versionen verfügbar, keine Notwendigkeit, die Erstellung selbst auszulösen (warten Sie, bis Sie in Webjar Abhängigkeiten!), Müssen nicht warten, bis der Index aktualisiert wird usw.

+0

Ich habe das gleiche Problem mit [2.7.5 uglify-js] (https://mvnrepository.com/artifact/org.webjars.npm/uglify-js), wie ich es mit [2.7.4 uglifyjs getan habe ] (https://mvnrepository.com/artifact/org.webjars/uglifyjs). Sein jar-Archiv enthält keine 'heighifyjs.js', nur' hub/heighjjs'. – Suma

+0

Der "Scalajs-Bundler" ist vielversprechend, aber es gibt wahrscheinlich einige zusätzliche Schritte, um es zum Laufen zu bringen. Es fügt Abhängigkeiten nicht in "scalafromjs-test-jsdeps.js", sondern in "scalajs-bundler/scalafromjs-test-fastopt.js" hinzu. Daher werden die Abhängigkeiten normalerweise nicht durch das Ausführen von App oder Tests geladen. – Suma

+0

Ich habe [eine neue Frage] (https://stackoverflow.com/questions/42021880/how-to-use-scalajs-bundler-with-client-only-app) über die reine Client-Nutzung gepostet. – Suma