在构建过程中将代码包装在自定义闭包中

时间:2013-01-30 21:46:17

标签: javascript build gruntjs

我想在构建过程中使用Grunt(和uglify)将我的代码包装在自定义类型的Closure中。这种操作必须使sourceMap保持工作。

我的用例是将我的所有代码包装在try/catch块中以允许记录生产中的错误 - 而不会失去对堆栈跟踪的访问权限(与window.onerror不同)。我可能会使用Raven-js 1.0来解决这个问题。

任何人都知道如何轻松管理这个问题?

如果您有可能带来完整答案的提示,那么也会被接受

1 个答案:

答案 0 :(得分:6)

最后,我发现了一个grunt插件(grunt-wrap),他确实这样做了:

  wrap: {
    modules: {
      src: ['assets/*.js'],
      dest: 'dist/',
      wrapper: ['try {', '} catch(e) { Raven.captureException(e); }']
    }
  }

如果您对raven-js感兴趣。我已经使用try/catch而不是Raven.context,因为这不会在代码周围创建新的全局闭包。