0

Play Framework 2.1.0 版文档状态:

默认情况下使用基于 rhino 的优化器,可以通过 requireNativePath 设置为性能配置原生节点版本

但是没有关于如何/在哪里实际执行此操作的示例。当我将我的应用程序部署到 Heroku 时,优化步骤需要 10 分钟以上,并导致构建经常失败。谁能指出我应该如何设置这个 requireNativePath 标志?

4

2 回答 2

4

没有简单的方法可以requireNativePath在 Heroku 上工作,因为您必须分叉和修改 scala buildpack 才能获得改进。但是,按照以下步骤,您将优化 10 倍以上的速度(部署需要大约 700 多秒,现在只需要大约 65 秒)

继续 fork scala buildpack 并从此处应用修改。这些修改本质上是安装 node 和 npm,然后安装 requireJS node_module。

将修改添加到 buildpack 后,您必须通过 CLI 告诉 heroku 使用您的自定义 buildpack

$ heroku config:set BUILDPACK_URL=https://github.com/<your user>/heroku-buildpack-scala

接下来,Build.scala通过添加此行来修改您的项目设置

requireNativePath := scala.util.Properties.envOrNone("REQUIREJS_PATH")

接下来在 heroku 上为REQUIREJS_PATHvia CLI 设置一个配置变量。这是 buildpack 修改将安装 r.js 文件的路径:

$ heroku config:set REQUIREJS_PATH=/tmp/scala_buildpack_build_dir/vendor/node/bin/r.js    

接下来,您必须user-env-compile从 heroku 启用实验室。这将允许您从编译过程中访问任何环境变量。

$ heroku labs:enable user-env-compile

完成上述步骤后,您现在可以将最新更改推送到 heroku,您会注意到优化步骤所需的时间减少了 10 倍

于 2013-12-20T01:06:15.233 回答
2

将此添加到项目设置中:

requireNativePath := Some("/usr/local/lib/node_modules/requirejs/bin/r.js")

您还可以查看此示例应用程序:https ://github.com/magro/play2-java-computer-database/tree/master/play-coda

于 2013-05-29T06:49:59.930 回答