Playframework 播放2.3.10-text.js的sbt rjs错误:无法读取属性';规范化&x27;未定义的

Playframework 播放2.3.10-text.js的sbt rjs错误:无法读取属性';规范化&x27;未定义的,playframework,requirejs,sbt-rjs,Playframework,Requirejs,Sbt Rjs,环境:播放2.3.10;sbt 0.13.5;sbt rjs 1.0.1 我在play framework Google group和StackOverflow上尝试过类似问题的建议解决方案,但至今未能解决此问题。我把同样的问题贴在了网上 我已将播放从2.2.3升级到2.3.10,在运行激活器dist时出现以下错误: [info] TypeError: Cannot read property 'normalize' of undefined JsEngineKeys.engineType :

环境:播放2.3.10;sbt 0.13.5;sbt rjs 1.0.1

我在play framework Google group和StackOverflow上尝试过类似问题的建议解决方案,但至今未能解决此问题。我把同样的问题贴在了网上

我已将播放从2.2.3升级到2.3.10,在运行激活器dist时出现以下错误:

[info] TypeError: Cannot read property 'normalize' of undefined
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"
// 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")
以下是引发错误的代码行:

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的相关内容:

[info] TypeError: Cannot read property 'normalize' of undefined
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"
// 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")
以下是插件的内容。sbt

[info] TypeError: Cannot read property 'normalize' of undefined
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"
// 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'
如果有人能给我指点我这里缺少的东西,我将不胜感激


谢谢。

我切换到sbt.rjs 1.0.7并修改了SbtRjs.scala以打印
优化映射
内部方法
私有def runOptimizer
,其中不包括text.js。我真的不知道为什么在优化过程中它仍然被包括在内。有人有什么想法吗?我切换到sbt.rjs 1.0.7并修改了SbtRjs.scala以打印
optimizerMappings
内部方法
private def runOptimizer
,其中不包括text.js。我真的不知道为什么在优化过程中它仍然被包括在内。有人有什么想法吗?