在chrome扩展中调试匿名函数

时间:2013-02-11 10:32:59

标签: javascript debugging google-chrome coffeescript

我正在构建一个原型Web应用程序,我想将它集成到chrome网页中(不需要生产)。 因此,我构建了一个后端解决方案,将我的所有js文件发送到一个请求中,并将结果发送到chrome扩展客户端,以便于组织和简化。

myBackend.coffee(我自己的nodejs服务器)

getScript = (name) ->
  filename = "#{__dirname}/../public/js/#{name}.js"
  fs.readFileSync(filename, 'utf-8')

get '/chrome/includes', (req, res) ->
  scripts = [
    getScript 'vendor/jquery'
    getScript 'vendor/jquery.ui'
    getScript 'vendor/mousetrap'
    getScript 'vendor/mustache'
    getScript 'vendor/backbone'
    #...
    getScript 'main-chrome'
  ]

  res.send
    scripts: scripts
    css: [
      #...
    ]

backckground.coffee(chrome客户端)

$.ajax
  url: "http://localhost:3001/chrome/includes"

  success: (data) ->
    compactedCode = ''
    _.each data.scripts, (code) ->
      compactedCode += code

    chrome.tabs.executeScript tab.id, code: compactedCode

好的,这样很好,但是当我在“compatedCode”中执行错误的代码时会出现问题。

Chrome告诉我:

  

未捕获的TypeError:undefined不是函数   (匿名功能)   但没告诉我错误在哪里。

https://docs.google.com/file/d/0B6tc60GuFE4WSk4zTXhzV1luOE0/edit?usp=sharing

我有很多代码,所以这不是一个在任何地方编写“调试器”的选项。

如何以熟练的方式进行调试?

1 个答案:

答案 0 :(得分:0)

嗯,我在这里找到了一个很好的解决方案: http://code.google.com/p/chromium/issues/detail?id=95352

只需要添加这个,精彩

compactedCode += "\n//@ sourceURL=foo.js"