5

我在 play 框架中使用 require.js,这很棒。调整Build.scala文件后,我在生产中获得了缩小的 js 文件,但我无法找到有关将所有 require.js 模块连接到单个 js 文件的任何信息?

如果有人能阐明或指导我正确的方向,我将不胜感激。

4

2 回答 2

2

我在 2.2.x 中遇到了一些关于 Play 中 requireJS 集成的“陷阱”。

a) 不要更改您的路线文件资产位置。Play 的约定似乎是所有公共 javascript 都进入 public/javascripts,而你的 requireJS 驱动程序进入 app/assets/javascripts。

b) build.sbt requireJS 行位于底部,在“playJavaSettings”或“playScalaSettings”下方,如下所示:

name := "TestContcatJS"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache
)     

play.Project.playJavaSettings

requireJs += "main.js"

requireJsShim += "main.js"

c) 您可以使用相对路径在您的驱动程序中引用公共 javascript。类似于(在 main.js 中):

require.config({
    paths: {
        'public-js': '../../public/javascripts'
    }
});

require([
   "public-js/foo",
   "public-js/bar"
]);
于 2014-09-17T12:51:43.857 回答
2

你知道“webjars”(http://www.webjars.org)吗?Webjars 是一个框架,它在 jar 文件中为您提供 Javascript 和 CSS 库/框架。您可以将它们作为依赖项添加到您的构建文件中。它们还提供了一些辅助功能,其中之一将 requirejs 内容“编译”(连接和缩小)到一个文件中。

查看文档:http ://www.webjars.org/documentation他们提供了一些简单的示例。

于 2014-09-17T06:51:21.983 回答