当前位置: 首页 > 知识库问答 >
问题:

使用源地图和网页包调试typescript

澹台岳
2023-03-14

我有一个用Typescript编写的项目,我希望能够调试它(无论是在Chrome开发工具中还是在Intellij中)。

起初,我看到Typescript的导入功能不受支持。所以我试着使用WebpackWebpack dev server但是完全失败了。即使我的应用程序正在工作(由于有一个包含所有代码的bundle.js文件),它也无法将代码与给定的源代码映射匹配,这使得调试变得不可能。

停止使用webpack后,我尝试添加require。js作为解决需求的依赖项未定义错误。这很管用,但现在我又被困住了,我明白了:

未捕获引用错误:未定义导出

我不知道这为什么不起作用。我想让我的应用程序工作(通过webpack或在编译后解析导入语句),并且仍然能够使用typescript生成的源代码图调试代码。我怎样才能做到这一点?

我正在附上我的配置文件,以防那里缺少什么:

tsconfig。json

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "sourceMap": true
  },
  "include": [
    "scripts/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}

webpack.config.js:

module.exports = {
    resolve: {
        extensions: [/*'.ts', '.tsx', */'.js']
    },
    entry: './scripts/main.js',
    output: {
        path: '/',
        filename: 'app.js'
    },
    module: {
        rules: [
            { test: /\.js$/, loader: 'source-map-loader', enforce: 'pre' }
        ],
        loaders: [
            { test: /\.tsx?$/, loader: 'ts-loader', exclude: /node_modules/ },
            {test: /\.css$/, loader: "style!css"}
        ]
    },
    watch: true
};

共有2个答案

况景龙
2023-03-14

要启用使用webpack进行调试,请将devtool:“源代码映射”添加到webpack中。配置。js

使用require加载文件。js,更改“模块”:tsconfig中的“amd”。json<代码>要求。js不支持加载commonjs模块。

万志专
2023-03-14

我将在这里发布一个答案。这个答案可能不适用于你(参见第5步)。它因人而异。经过了这么多天的研究,robin-a-meade在GitHub上的帖子终于抓住了关键。

在开始之前,主要问题似乎在于VS代码调试配置文件中源映射的URL,以及它(VS代码)如何看待应用程序。它独立于您正在使用的任何后端堆栈(例如Express、.NET Core、Django等)。唯一需要注意的是,当应用程序运行时,Google Chrome成功加载生成的源地图。

使用:

  • Visual Studio代码1.13.1版

安装GoogleChrome扩展:

1) 点击左边的方形图标。

2,3)键入不带逗号的“Chrome调试器”,然后单击安装

配置调试器:

4) 点击bug图标。

5)单击齿轮图标。这将打开“launch.json”,用于在Visual Studio Code中配置调试。

现在。这就是它变得非常棘手的地方。这是它可能对你有用也可能没用的部分。

再次感谢GitHub的robin-a-meade,他的代码让它工作了:

6) 输入以下内容。这将启动一个带有http://localhost在URL中。然后,它将使用webpack://路径来搜索webpack映射。这真的很棘手,你可能需要尝试不同的组合,看看哪一个有效。

 {
            "name": "Launch Chrome against localhost, with sourcemaps",
            "type": "chrome",
            "request": "launch",
            "url": "http://localhost",
            "sourceMaps": true,
            "webRoot": "${workspaceRoot}",
            "diagnosticLogging": true,
            "sourceMapPathOverrides": {
                "webpack:///./*": "${webRoot}/*"
            }
        }

如果您使用的是Firefox,请尝试使用以下选项:

{
            "name": "Launch Firefox",
            "type": "firefox",
            "firefoxExecutable": "C:/Program Files/Mozilla Firefox/firefox.exe",
            "request": "launch",
            "reAttach": true,
            "webRoot": "${workspaceRoot}",
            "sourceMaps": "server",

            "pathMappings": [
                {
                    "url":  "webpack:///",
                    "path": "${webRoot}/"
                }
            ],
            "url": "localhost"
        }

网页包配置添加:

devtools:“源代码地图”

记住,任何未导入到主目录的文件。js文件(包含所有导入和所需内容)将无法设置断点。

如果这不起作用,请查看以下URL列表,这些URL可以帮助您解决问题。

  1. https://github.com/angular/angular-cli/issues/2453(帮助我走出困境的奇迹页面)
  2. 使用Visual Studio代码调试Web包绑定的节点ts
  3. VS代码:“由于未找到生成的代码而忽略断点”错误
  4. https://github.com/Microsoft/vscode-chrome-debug
  5. https://github.com/Microsoft/vscode/issues/25349
  6. https://github.com/angular/angular-cli/issues/1223
  7. https://github.com/Microsoft/vscode-chrome-debug/issues/40(页面底部)
  8. https://stackoverflow.com/a/42405563/1057052

对于生成soruce地图:如何生成源地图时使用Babel和webpack?

 类似资料:
  • 我在webpack和react服务器上提供静态图像时遇到问题。 这是我当前的文件夹结构 正如你所看到的,我有一个资产文件夹,它保存着我所有的图片,这是我的网页输入和输出配置 其中client条目是我的react项目client_条目的源:path.join(process.cwd(),'src/client/index.jsx') 这里是我试图从项目根目录下的assets文件夹加载图像的地方 只有

  • 我一直在想如何通过React和Webpack动态添加图像。我在src/images下有一个图像文件夹,在src/components/index下有一个组件。我正在使用url加载器和以下Web包配置 在我知道的组件中,我可以在创建组件之前在文件顶部为特定图像添加require(image_path),但我希望使组件通用,并使其具有从父组件传递的图像路径的属性。 我所尝试的是: 对于实际的属性,我已

  • 下面的例子中我们通过tcpdump查看workerman-chat应用通过websocket传输的数据。workerman-chat例子中服务端是通过7272端口对外提供websocket服务的,所以我们抓取7272端口上的数据包。 1、运行命令 tcpdump -Ans 4096 -iany port 7272 2、在浏览器地址栏输入 http://127.0.0.1:55151 3、输入昵称

  • 实验调试功能面向策划、交互、视觉、测试以及开发同学,定位于解决以下问题: 提前对不同版本的网页内容进行调试,保证HubbleData可以对不同版本进行分流,同时检查线上效果是否跟预期相符; 提前对设置的优化指标进行调试,保证HubbleData可以正常统计A/B测试相关的优化指标,同时保证埋点数据是准确的。 本节将对网页调试功能进行详细介绍,内容包括产品功能介绍以及一些注意事项。 备注:调试数据不

  • 问题内容: 我正在使用Python 2.7 + BeautifulSoup 4.3.2。 我正在尝试使用Python和BeautifulSoup在网页上获取信息。因为该网页位于公司网站中,并且需要登录和重定向,所以我将目标页面的源代码页面复制到一个文件中,并将其另存为C:\中的“ example.html”,以方便练习。 这是原始代码的一部分: 到目前为止,我得出的代码是: 这只是测试的第一步,因

  • 我有一个如下的模块A,模块A是使用Web包的捆绑包,它包括模块B。该模块还使用需要变量导出高图表库 A.js(在modules文件夹下::src/main/webapp/resources/js/modules) B.js(在公共文件夹下:src/main/webapp/resources/js/Common) 注意ModuleB. js捆绑在A. js中 当我加载javascript时,它向我抛