Play Framework 2.1.0版文档声明:
默认使用基于rhino的优化器,可以通过requireNativePath设置配置本机节点版本的性能
但是没有关于如何/在何处实际执行此操作的示例。当我将我的应用程序部署到Heroku时,优化步骤耗时超过10分钟,导致构建失败。任何人都可以指出我应该如何设置这个requireNativePath标志?
答案 0 :(得分:4)
没有简单的方法可以让requireNativePath
在Heroku上工作,因为您必须分叉并修改scala buildpack以获得改进。但是,通过以下步骤,您将优化速度提高10倍以上(部署时间约为700 +秒,现在只需约65秒)
继续并分叉scala buildpack并应用modifications from here。这些修改主要是安装node和npm,然后安装requireJS node_module。
将修改添加到buildpack之后,您必须告诉heroku通过CLI使用您的自定义buildpack
$ heroku config:set BUILDPACK_URL=https://github.com/<your user>/heroku-buildpack-scala
接下来,通过添加此行修改您的Build.scala
项目设置
requireNativePath := scala.util.Properties.envOrNone("REQUIREJS_PATH")
接下来通过CLI在heroku上为REQUIREJS_PATH
设置一个配置变量。这是buildpack修改将安装r.js文件的路径:
$ heroku config:set REQUIREJS_PATH=/tmp/scala_buildpack_build_dir/vendor/node/bin/r.js
接下来,您必须从heroku启用user-env-compile
实验室。这将允许您从编译过程中访问任何环境变量。
$ heroku labs:enable user-env-compile
完成上述步骤后,您现在可以将最新更改推送到heroku,您会发现优化步骤的时间减少了10倍
答案 1 :(得分:2)
将其添加到项目设置中:
requireNativePath := Some("/usr/local/lib/node_modules/requirejs/bin/r.js")
您还可以查看此示例应用:https://github.com/magro/play2-java-computer-database/tree/master/play-coda