我有一个用Typescript编写的项目,我希望能够调试它(无论是在Chrome开发工具
中还是在Intellij
中)。
起初,我看到Typescript的导入功能不受支持。所以我试着使用Webpack
和Webpack 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
};
要启用使用webpack进行调试,请将devtool:“源代码映射”
添加到webpack中。配置。js
。
使用require加载文件。js
,更改“模块”:
<代码>要求。js不支持加载tsconfig中的“amd”
。jsoncommonjs
模块。
我将在这里发布一个答案。这个答案可能不适用于你(参见第5步)。它因人而异。经过了这么多天的研究,robin-a-meade在GitHub上的帖子终于抓住了关键。
在开始之前,主要问题似乎在于VS代码调试配置文件中源映射的URL,以及它(VS代码)如何看待应用程序。它独立于您正在使用的任何后端堆栈(例如Express、.NET Core、Django等)。唯一需要注意的是,当应用程序运行时,Google Chrome成功加载生成的源地图。
使用:
安装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可以帮助您解决问题。
对于生成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时,它向我抛