【发布时间】:2015-09-07 20:32:23
【问题描述】:
我正在使用带有这个简单配置文件的 WebPack 来捆绑我的应用程序。
var path = require('path');
module.exports = {
debug: true,
devtool: 'source-map',
context: path.join(__dirname, 'js'),
entry: './main.js',
output: {
path: path.join(__dirname, 'Built'),
filename: '[name].bundle.js'
}
};
这会创建源映射,我可以轻松地使用它在所有流行的浏览器中调试我的原始 javascript 文件。但是,在 Visual Studio 中设置断点并运行项目不起作用,断点被禁用,显示“没有为此文档加载任何符号”。我正在通过 IE11 进行调试,Visual Studio 可以立即调试简单的 javascript,但捆绑后就无法使用了。
有迹象表明源映射有效,因为我进入控制台输出Unsupported format of the sourcemap。 sourcemap 生成上面的 using config 看起来像这样
{"version":3,"sources":["webpack:///webpack/bootstrap 2919a5f916c286b8e21a","webpack:///./main.js","webpack:///./structure_editor/content.js","webpack:///./structure_editor/test_bundle.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;ACVA,8C;;;;;;ACAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6B","file":"main.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 2919a5f916c286b8e21a\n **/","document.write(require(\"./structure_editor/content.js\"));\r\nvar TestBundle = require(\"./structure_editor/test_bundle.js\");\r\n\r\nvar test = new TestBundle();\r\ntest.testMe();\r\n\r\n//var StructureEditor = require(\"./structure_editor/structure_editor.js\");\r\n\r\n//var editor = new StructureEditor(0x00FF00);\r\n\r\n//editor.run();\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./main.js\n ** module id = 0\n ** module chunks = 0\n **/","module.exports = \"It works from content.js.\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./structure_editor/content.js\n ** module id = 1\n ** module chunks = 0\n **/","var TestBundle = function () {\r\n \r\n}\r\n\r\nTestBundle.prototype.testMe = function() {\r\n var a = 10;\r\n var b = 12;\r\n var c = a + b;\r\n document.write(c);\r\n};\r\n\r\nmodule.exports = TestBundle;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./structure_editor/test_bundle.js\n ** module id = 2\n ** module chunks = 0\n **/"],"sourceRoot":""}
所以我可以理解由于 webpack:// 可能不支持这种格式(尽管 IE 确实理解它)。但是,如果我知道 VS 的正确格式是怎样的,我可能能够调整 webpack 以生成这种格式。
我正在寻求任何想法、教程、.. 任何可以让它工作的东西。
【问题讨论】:
-
求教程是题外话
-
@Thomas 情况可能并非如此,在花了整整两天时间寻找解决方案之后,没有找到任何工作或完整的解决方案。但是,可能在某个地方有一篇文章,没有引起太多关注,可以带给我。无论如何,最后一句话的语气应该表明我将非常感谢任何帮助。
-
我也遇到了同样的问题。我用 VS'13 做了几次尝试,但没有成功。现在我在 Chrome 中使用调试器,但如果有人找到解决方案,我会非常高兴。
-
通过将源映射嵌入到 javascript github.com/macromaniac/exbundle 中,我能够让它为 typescript 工作
标签: javascript visual-studio debugging webpack source-maps