環境: Play 2.3.10; sbt 0.13.5; sbt-rjs 1.0.1
play-framework Google グループと StackOverflow で同様の質問に対する提案された解決策を試しましたが、これまでのところこの問題を解決できませんでした。同じ質問をGoogle グループに投稿しました。
Play を 2.2.3 から 2.3.10 にアップグレードしましたが、activator distを実行すると次のエラーが発生します。
[info] TypeError: Cannot read property 'normalize' of undefined
エラーをスローするコード行は次のとおりです。
define([
...,
'text!ui.template.html',
...
]
build.jsには以下が含まれます。
require.config({
...
...
paths : {
...,
text: 'empty:',
...
}
...
});
実際のパスを含むconfig.jsは次のようになります。
require.config({
...
...
paths : {
...,
text: '../bower_components/requirejs-plugins/lib/text',
...
}
...
});
rjs で動作させたいすべてのスクリプトは、public/scripts内にあります。build.sbtの関連コンテンツは次のとおりです。
JsEngineKeys.engineType := JsEngineKeys.EngineType.Node
pipelineStages := Seq(rjs, digest, gzip)
includeFilter in rjs := new FileFilter {
val scriptsDir = (baseDirectory.value / "public" / "scripts").getAbsolutePath
def accept(file: File) = file.getAbsolutePath.startsWith(scriptsDir)
}
//excludeFilter in rjs := GlobFilter("text")
excludeFilter in rjs := new FileFilter {
def accept(file: File) = file.getName.equals("text.js")
}
RjsKeys.mainModule := "app"
RjsKeys.mainConfigFile := new File("scripts/build.js")
RjsKeys.baseUrl := "scripts"
plugins.sbtの内容は次のとおりです。
// The Typesafe repository
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.10")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-gzip" % "1.0.0")
ここでの提案に基づいてbuild.sbtに excludeFilterを追加し、rjs := GlobFilter("text.js")でexcludeFilter と rjs := GlobFilter("text")で excludeFilterも試しました。
また、ここで提案されているように、stubModules : ['text']を build.js に追加しようとしました。
build.js からテキスト 'empty:'を削除すると、次のエラーが発生します。
[info] Error: ENOENT, no such file or directory '/path/to/target/web/rjs/build/scripts/text.js'
ここで欠けているものへのポインタをいただければ幸いです。
ありがとう。