如何从 Scala.js 导入 UglifyJS?

How to import UglifyJS from Scala.js?

我可以很好地使用 Scala.js 中的 jQuery:

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

现在我想使用 UglifyJS,它的 webjar 结构似乎有点不同。似乎没有缩小的 js 文件,甚至可能包含完整库的主文件看起来也不一样,它没有 .js 扩展名,并且以以下行开头:

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

"use strict";

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

是否可以从 Scala.js 使用此 webjar,如果可以,如何使用?我试过以下,但没有用:

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

这一行的 SBT 错误是:

[error] (test:resolvedJSDependencies) org.scalajs.core.tools.jsdep.JSLibResolveException: Some references to JS libraries could not be resolved:

[error] - Missing JS library: bin/uglifyjs

[error] originating from: scalafromjs:test, scalafromjs:compile

Uglify 发布为 uglify-js,而非 uglifyjs。此外,没有为 2.7.4 版创建一个 webjar,但是有一个为 2.7.5 版创建的。

如果您需要特定版本,只需点击几下 http://www.webjars.org/npm 即可轻松请求自动创建 2.7.4 的 webjar。

如果你去 webjars 网站搜索 "uglify-js",你会看到你需要使用的依赖配置:"org.webjars.npm" % "uglify-js" % "2.7.5"(加上你想要的文件)。


请注意,从 0.6.14 开始,Scala.js 支持使用 scalajs-bundler.

的 npm 模块

这个新系统远远优于 webjars——你有所有可用的 npm 模块和版本,不需要自己触发创建(等到你进入 webjar 依赖项!),不需要等待索引更新等