问题标签 [sbt-web]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
69 浏览

sbt - 如何让 SBT 识别自定义配置范围的设置

我正在使用 sbt-web,我只想将 js 文件 uglify 用于生产(在开发时节省编译时间)。但是,当我运行时:

我得到相同的结果

也就是说,prod:run似乎没有拾取pipelineStages in prod下面的范围设置。

我确定我误解了这一切是如何运作的,并希望有一些清晰和正确的用法。我已经阅读了http://www.scala-sbt.org/0.13/tutorial/Scopes.html以及关于 SO 的所有类似帖子,但灯泡还没有打开。如果有更好的方法,我很好,但是因为我处于学习模式,我仍然想知道为什么这不起作用的原因。

这是完整的 ./build.sbt 文件:

0 投票
1 回答
177 浏览

scala - 在运行测试之前,如何执行 sbt-web 资产管道,特别是 sbt-concat?

在运行测试之前,我需要一个 JavaScript 文件。它是使用 sbt-concat 创建的。如何添加 sbt-web 资产管道作为运行规范测试的依赖项?

0 投票
0 回答
149 浏览

uglifyjs - SbtWeb:丑化 traceur 的输出

我正在使用 SbtWeb traceur 插件在 Play Framework (sbt/scala) 项目中转换我的代码。这给了我一个 ES5 资源/main.js。然后我想将结果丑化为/main.min.js. 我也添加了 uglify 插件,然后尝试执行以下操作:

pipelineStages := Seq(traceur, uglify)

不幸的是,这不能编译,就像traceurTaskKey 一样,但不是正确的类型。我怎样才能做到这一点?

编辑:看起来更接近正确的方法是这样的:

但是,我现在收到 Javascript 中存在语法错误的 uglify 错误。这必须是因为 uglify 正在尝试处理原始 ES6 源,而不是 traceur 的 ES5 输出。还不知道如何让它工作。

0 投票
0 回答
202 浏览

scala - 如何在单个项目中将 scala-js 工件与 sbt-web 一起使用?

我想使用 sbt-web 和 scala-js 创建一个 webjar。到目前为止,我已将artifactPathscala-js 工件的 s 添加到mappings in Assets. 如果我打电话fastOptJS并且文件显示在正确的 webjar 位置,这确实有效。

但是,我希望在compile. 问题是,每当我在此处添加任务依赖项时,我都会得到循环依赖项fastOptJS。由于循环依赖关系,我无法添加fastOptJSresourceGeneratorsor sourceGenerators,也无法添加依赖项。compile

这不是fastOptJS从另一个项目触发的选项。

有针对这个的解决方法吗?

0 投票
1 回答
310 浏览

playframework - 无需播放插件的 Play Framework sbt-web 集成

将 play 作为库嵌入,我在我的项目中启用了 sbt-web 插件,并运行web-stage,使资产逐字复制到target/web/stage/. 但是,使用 Play Framework 的字符串插值路由 DSL如下,当匹配请求进来时,它们不会被服务:

通过播放代码处理Assets.at进行调试,看起来没有任何东西将资产变成资源target/scala-2.11/classes/,大概是播放框架试图将它们作为资源加载。跑步sbt web-stage并没有特别注意这一点。

那么 sbt-web 管理将资产放在那里时缺少什么?当手动放置在那里时,集成工作!因此,就 Play 而言,默认配置中的 sbt-web 似乎将资产放置在错误的目标子目录中......

请注意,plugins.sbt我只包含来自 sbt-web 的以下内容,这是否足够?

0 投票
2 回答
934 浏览

node.js - In a ScalaJs sbt build, is there any advantage to use webjars instead of npm or bower with 'Provided'?

When I first discovered webJars a few months ago I was super-skeptical that it would be be a viable way means of handling client-side dependencies given the enormous complexity of some of these builds/buildsystems, and given the frequency that js files are published. The second concern was of course not well-founded but I feel vindicated on the first after spending almost 36 hours now trying in vain to get about 10 scss/css/less-type webJars and 8 JS webJars to live under one jsDependencies roof.

What I found as that by the time you reach JS dependency 3, 4, or 5,you start getting into a ridiculous timekill loop:

1. "Oh nos! fastOptJS failed because there was some random file that was also named the same as a dependency in the webjar!"

2. I know what to do! I'll add a version to the defined js!

3. "Oh no! fastOptJS failed!"

gg boys.

This goes over and over and around and around, and then I have to start doing

and now I'm not really even using the webjar, but it has a jsdependency named X and I cannot change that...

Question

Hmmm? What if I just did what I used to do but build the dependencies without the app into some gigantic file, or set of files, and then feed that into the build? I have a proof of concept from online and I got it work (I think it was https://github.com/wav/material-ui-scalajs-react/blob/master/src/main/scala/wav/web/muiwrapper/package.scala ) which almost worked, and gave me the idea.

I know npm works a lot better than sbt, and I can still get it into my package... what's the downside, and am I missing something about sbt?

0 投票
0 回答
122 浏览

playframework - 如何让我的 Angular2 TestAssets 与我的 Assets with Play Framework 位于同一目录中?

Angular2 已经转向更模块化的方法来处理项目源。这意味着所有子模块源、html 模板和测试都在一个目录中。而不是分布在应用程序、公共和测试目录中。

这是一种很有意义的方法。

我正在尝试为此配置 Play/sbt-web。我的项目中有以下设置:

资产编译步骤正常工作。但之后我得到一个重复的映射错误(见下文)。似乎已编译的资产作为 webjar 依赖项添加到 TestAssets 编译中,而没有应用 excludefilter。这将解释重复映射。

有没有办法让它在我的项目中工作?或者这是 sbt-web 的一个缺点?(如有必要,我愿意处理 pullrequest 以进行修复)

你可以在这里找到我的 Activator 示例 play-angular2-typescript 项目。

这是重复的映射错误:

0 投票
1 回答
189 浏览

playframework - Play 2.4.x - 资产复制

在 Play 2.4.6 应用程序中,我正在处理的资产在 stage/dist 任务中被复制。

基本上它是一个包含 3 个子模块的应用程序,所有资产都存在于主public文件夹中。我没有sbt-web启用并且没有 webjars 依赖项(但从 jar 内容 Play 可能在某处使用它们)。

如果我使用PlayKeys.externalizeResources := false我最终在lib文件夹中有两个 jar 文件:

  • myapp-server.myapp-server-0.9.6-assets.jar
  • myapp-server.myapp-server-0.9.6.jar

第一个包含资产,因为它应该。第二个应该包含我的主要项目类文件,但它还有一个META-INF/resources/webjars/myapp-server/0.9.6文件夹,其中包含公共文件夹中的所有资产!

如果我使用PlayKeys.externalizeResources := true我会得到完全相同的行为,但会出现额外的META-INF/resources文件夹myapp-server.myapp-server-0.9.6-externalized-resources.jar

那么我怎样才能摆脱那个额外的资产文件夹呢?我有很多资产,所以额外的文件夹增加了很多包大小......

0 投票
1 回答
201 浏览

scala - 无法在播放应用程序中导入 sbt-rjs 插件

我想在我的基于 play framework 2.5 的 java 应用程序中连接 JavaScript 文件。

plugins.sbt中,我添加了以下代码:

我还补充说:

Build.scala我添加了:

当我跑步时,>activator clean dist我得到:

我尝试添加:

但是里面没有rjscom.typesafe.sbt

构建.scala

我所知道的是如何在应用程序中安装 sbt-rjs 插件。

0 投票
0 回答
252 浏览

playframework - 如何在 sbt-uglify 选项中指定目录

我有一个基于游戏框架的项目。我正在使用 sbt-uglify 插件来缩小和连接 js 文件

在我的 build.sbt 我已经定义

上面的代码包含了所有的js文件。但是我想做类似的事情

在不使用 sbt-concat 的情况下如何做到这一点?