【问题标题】:How to import UglifyJS from Scala.js?如何从 Scala.js 导入 UglifyJS?
【发布时间】:2017-06-20 02:47:27
【问题描述】:

我可以很好地使用来自 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");

这个 webjar 是否可以从 Scala.js 中使用,如果可以,如何使用?我尝试了以下方法,但没有成功:

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

这行 SBT 错误是:

[error] (test:resolvedJSDependencies) org.scalajs.core.tools.jsdep.JSLibResolveException: 一些对 JS 库的引用无法解析:

[错误] - 缺少 JS 库:bin/uglifyjs

[错误] 源自:scalafromjs:test, scalafromjs:compile

【问题讨论】:

    标签: scala sbt uglifyjs scala.js


    【解决方案1】:

    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 依赖项!),不需要等待索引更新,等等

    【讨论】:

    • 我在使用 2.7.5 uglify-js 时遇到了与使用 2.7.4 uglifyjs 时相同的问题。它的jar包不包含uglifyjs.js,只有bin/uglifyjs
    • scalajs-bundler 很有希望,但可能还有一些额外的步骤可以让它发挥作用。它将依赖项添加到scalafromjs-test-jsdeps.js,而不是scalajs-bundler/scalafromjs-test-fastopt.js,因此运行应用程序或测试通常不会加载依赖项。
    • 我已经发布了a new question关于仅供客户端使用的信息。
    • 抱歉,我不太了解 webjars 应该如何工作。在经历了许多挫折之后,我跳槽到 scala-js-bundler 并且从那以后没有使用过 webjars。有人已经对您的新问题给出了正确答案。祝你好运!
    猜你喜欢
    • 2021-12-31
    • 2015-10-11
    • 1970-01-01
    • 2023-03-29
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多