【发布时间】:2014-09-05 12:17:42
【问题描述】:
我正在尝试使用webpack 的devtool 功能,我的配置如下:
{
devtool: 'eval-source-map'
}
这似乎工作正常,我可以看到我的源代码被包装在 eval() 函数中,并且在末尾附加了一个 base64 源映射。
但是我的错误没有映射到源(Chrome 开发者工具),而是我收到如下错误:
ReferenceError: _ is not defined
at eval (eval at <anonymous> (http://localhost:8080/build/abc.js:78:2), <anonymous>:125:21)
abc.js 是我构建和连接文件的名称。单击错误以查看源代码只会将我带到eval 函数,如下所示:
eval("var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n /** @type {angular.Module} */\n return angular.module('utils', []);\n}.call(exports, __webpack_require__, exports, module)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n// Load exports\n__webpack_require__(6);\n//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbW9kdWxlcy91dGlscy9zcmMvbW9kdWxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJrQ0FBQTtBQUNBLGFBQWEsZUFBZTtBQUM1QjtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImRlZmluZShmdW5jdGlvbigpIHtcbiAgLyoqIEB0eXBlIHthbmd1bGFyLk1vZHVsZX0gKi9cbiAgcmV0dXJuIGFuZ3VsYXIubW9kdWxlKCd1dGlscycsIFtdKTtcbn0pO1xuXG4vLyBMb2FkIGV4cG9ydHNcbnJlcXVpcmUoJy4vZXhwb3J0cy9jb3JlJyk7XG4iXSwic291cmNlUm9vdCI6IndlYnBhY2stbW9kdWxlOi8vIn0=");
如果我解码 base64,我可以看到它生成的源映射似乎是有效的:
{
"version":3,
"sources":[
"./modules/utils/src/module.js"
],
"names":[
],
"mappings":"kCAAA;AACA,aAAa,eAAe;AAC5B;AACA,CAAC;;AAED;AACA",
"sourcesContent":[
"define(function() {\n /** @type {angular.Module} */\n return angular.module('utils', []);\n});\n\n// Load exports\nrequire('./exports/core');\n"
],
"sourceRoot":"webpack-module://"
}
有谁知道为什么这些源地图似乎不起作用? webpack 文档在某些方面仍然有些模糊。
请注意,我只在开发中使用eval-source-map,并为生产生成了一个单独的地图文件(这也不起作用)。
【问题讨论】:
-
我想知道this是否有关联?
标签: javascript node.js webpack