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

Sim*_*ias 9 javascript build gruntjs

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

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

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

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

Sim*_*ias 6

最后,我发现了一个grunt插件(grunt-wrap),它完成了这个:

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

如果你有兴趣raven-js.我一直在使用它try/catch,Raven.context因为这不会在代码周围创建一个新的全局闭包.