Require.js编译器生成不准确的源图

时间:2014-02-25 21:27:54

标签: requirejs source-maps

我正在使用require.js的构建工具(通过grunt-contrib-requirejs)将我的所有代码打包成缩小版本,并且我已启用generateSourceMaps。

但是,源图需要生成错误。在一些文件中,它们很好,在其他文件中,它们是一两行;在某些情况下,它们的数量多达17行。可能出现什么问题?

关于我的回购可能很奇怪:

  • 手柄模板集成到构建中(它们是使用Alex Sexton的plugin预编译的)
  • 许多不包含要求代码标准的软垫文件(cordova,backbone,marionette)。
  • 我使用r.js来连接文件,但不是为了缩小它们。缩小文件并不能解决问题(发生相同的行错误)。
  • 在某些配置中,r.js会出现一个错误,指出如果启用了preserveLicenseComments,则无法生成源映射。在其他情况下(当没有缩小时),保持许可证评论似乎没有问题。无论哪种方式,关闭它都无助于纠正行号。
  • 稍后在sourcemap标头中列出的文件似乎有较大的错误

可能导致这种情况的原因,我该如何解决?

更新 我把它缩小了一些:每次遇到像这样的一行时,源图生成器都会丢失一行:

console.log('l170');     // logs as on line 170
//>>excludeStart('excludeHbsParser', pragmas.excludeHbsParser)
console.log('l172');     // logs as on line 171

我不确定r.js解析器对这些行做了什么,但它似乎并没有在源代码生成中正确地解释它们。

1 个答案:

答案 0 :(得分:0)

添加到r.js config:

skipPragmas:true

对我而言,不知道这对每个人都有帮助。

https://github.com/requirejs/r.js/blob/2.2.0/build/example.build.js#L299