【发布时间】:2013-09-23 07:01:30
【问题描述】:
我从事 Play 2.1.2 项目,使用 Angular.js、CoffeeScript、require.js 和 bower 来组织前端。
对于 bower,我在 /app/assets/javascripts/main.coffee 文件中使用了 shim。
然后我使用play clean stage 进行部署并运行target/start。
问题是:在stage 阶段,Play 不会丑化资源。
在Build.scala:
val main = play.Project(appName, appVersion, appDependencies).settings(
requireJs += "main",
requireJsShim += "main.js"
)
然后在舞台上丑化css之后:
Tracing dependencies for: main
Error: Load timeout for modules: angular-bootstrap,angular
http://requirejs.org/docs/errors.html#timeout
In module tree:
main
jquery
Error: Load timeout for modules: angular-bootstrap,angular
http://requirejs.org/docs/errors.html#timeout
In module tree:
main
jquery
[info] RequireJS optimization finished.
所以没有什么是丑化的。在main.coffee:
require.config
paths:
jquery: "lib/jquery/jquery"
angular: "lib/angular/angular"
...
shim:
angular: {deps: ["jquery"], exports: "angular"}
...
define [
"angular-bootstrap"
"angular"
...
], ->
app = angular.module "app"
...
app
它在客户端完美运行,所有路径都正确等等。
requireJsShim += "main.js" 看起来也是正确的:看起来 require.js 优化发生在编译资产之后,所以 main.coffee 或只是 main 不起作用。
你知道问题的根源是什么吗?有人遇到过吗?
【问题讨论】:
-
main.coffee 不是目标,而是 main.js(编译后)。您的目标文件夹中没有 main.js(在启动命令上)吗?
标签: coffeescript playframework-2.0 requirejs