我正在尝试在 VSCode 中的 Office Add-In for Excel 中进行调试。在 VSCode 中只能看到“调用堆栈”并花费了大量时间后,我决定下载一个全新的
yo office
模板,看看它是否有效并进行比较。
我必须全局安装
office-addin-debugging
和 webpack
,但我现在可以启动 webpack 服务器、启动 Excel、打开任务窗格(我选择了带有 Javasript for Excel 的任务窗格加载项)并点击运行按钮。
但是,在 VSCode 中,我没有到达添加到
commands.js
的断点,并且在 watch
下看不到任何变量。这与我的项目显示的行为相同,但我只是将 http-server
用于我的主项目,而 webpack
纯粹用于捆绑/填充等。
所以主要问题是,你可以从
yo office
调试初始模板吗?或者还需要配置什么?
对于我的项目,我是否需要使用
webpack dev server
,因为我知道/看到它具有“热重载”功能,但我不打算使用捆绑代码进行调试/测试,而只是直接在源代码上进行。
我一直在关注这个 --> https://learn.microsoft.com/en-us/office/dev/add-ins/testing/debug-desktop-using-edge-chromium,你可以在下面的屏幕截图显示它使用 Edge Chromium。
一些细节:
我使用的是 Windows 10,带有最新的 VS Code 和 NodeJS(在我的项目测试期间重新安装)
更新:
好吧,我做错了两件事......
commands.js
但模板未加载该文件,需要使用
taskpane.js
我能够命中断点,但我声明的变量和 watched
显示
undefined
。知道我做错了什么吗?进一步更新:
"webserver:https:src": "http-server ./src/ -S -C %USERPROFILE%/.office-addin-dev-certs/localhost.crt -K %USERPROFILE%/.office-addin-dev-certs/localhost.key --cors . -p 3000",
我发现我正在编辑的 commands.js
不起作用,但是如果我在
commands.js
控制台中单击
debug
,我就能够编辑托管在网络服务器上的文件..例如,如果您看下面,您可以看到文件 URL 是
http://localhost..
vs
src/...
。这意味着我必须加载 Excel、打开任务窗格、在网络服务器上打开文件、插入断点并重新加载。
我发誓,当我打开 DevTools 时,我已经与本地文件同步过一次,我能够
set root folder
,但下次我打开 Excel/DevTools 时,此选项消失了,同步也消失了..我已经很接近了,但还没有完全实现。
VSCode需要启动Webserver吗?我让它在另一个终端中单独运行..
"webRoot": "${workspaceRoot}/src/"
添加
/src/
部分。回顾一下:
http-server
并提供未转换/缩小的
/src/
目录等..
"webserver:https:src": "http-server ./src/ -S -C %USERPROFILE%/.office-addin-dev-certs/localhost.crt -K %USERPROFILE%/.office-addin-dev-certs/localhost.key --cors . -p 3000 -c-1",
launch.json
:
{
"name": "Edge - Excel Desktop Localhost External",
"type": "msedge",
"request": "attach",
"port": 9229,
"timeout": 42000,
"webRoot": "${workspaceRoot}/src/",
"preLaunchTask": "Debug: Excel Desktop Localhost External",
"postDebugTask": "Stop Debug Localhost External"
},