mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-21 09:38:01 +02:00
Tools: Creating a vscode configuration for debugging the server project (#8322)
This commit is contained in:
parent
e4023a349f
commit
4e4685b039
@ -353,5 +353,43 @@
|
||||
"web/bundles/": true,
|
||||
"web/env.php": true,
|
||||
}
|
||||
},
|
||||
"tasks": {
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "transpile-server",
|
||||
"type": "shell",
|
||||
"command": "cd ${workspaceFolder}/packages/server && yarn tsc",
|
||||
"group": "build",
|
||||
}
|
||||
]
|
||||
},
|
||||
"launch": {
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Server",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"preLaunchTask": "transpile-server",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/**/*.js",
|
||||
"!**/node_modules/**"
|
||||
],
|
||||
"program": "${workspaceFolder}/packages/server/src/app.ts",
|
||||
"args": [
|
||||
"--env", "dev"
|
||||
],
|
||||
"env": {
|
||||
"JOPLIN_IS_TESTING": "1",
|
||||
"TERMS_URL": "https://example.com",
|
||||
"PRIVACY_URL": "https://example.com",
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
44
readme/spec/server_debug.md
Normal file
44
readme/spec/server_debug.md
Normal file
@ -0,0 +1,44 @@
|
||||
# Debugging Server project with vscode
|
||||
|
||||
Using a debugger sometimes is much easier than trying to just print things to understand a bug,
|
||||
for the server project we have a configuration that makes it easy for everyone to run in debug mode inside vscode.
|
||||
|
||||
In the debug screen you can select "Server" and hit the play button to start the process.
|
||||
|
||||
![image](https://github.com/laurent22/joplin/assets/5051088/cda6e3d6-32f3-4997-bd16-8413a6c962c5)
|
||||
|
||||
Before running the server there is a task called `transpile-server` that runs `yarn tsc` to make sure that the
|
||||
latest changes in the `package/server` are being executed.
|
||||
|
||||
https://github.com/laurent22/joplin/blob/4f37e6073ad549fe72206e2a125c27174b5d96a9/joplin.code-workspace#L360-L365
|
||||
|
||||
In a optimal solution we would be doing this `transpile-server` task in the `tasks.json` file
|
||||
(inside the `tasks.json` we can use a `type` `npm` for the task that is more ergonomic)
|
||||
|
||||
If there are any new environment variables that need to be included before execution, there is a place where they can be added:
|
||||
|
||||
https://github.com/laurent22/joplin/blob/4f37e6073ad549fe72206e2a125c27174b5d96a9/joplin.code-workspace#L387-L391
|
||||
|
||||
Something that we could do to improve the experience is adding a build process to other projects that are used by the server project,
|
||||
but this still can be done with other terminals open.
|
||||
|
||||
### Modifying the configuration:
|
||||
|
||||
To modify the configuration, for now, it is all in the `joplin.code-workspace` file, but if needed we could also break
|
||||
the configuration into two files, one for the `launch.json` and other for the `tasks.json`.
|
||||
|
||||
|
||||
### References:
|
||||
[vscode debugger](https://code.visualstudio.com/docs/editor/debugging)
|
||||
|
||||
[Launch option to vscode workspaces](https://code.visualstudio.com/docs/editor/multi-root-workspaces#_debugging)
|
||||
|
||||
[vscode tasks](https://code.visualstudio.com/docs/editor/tasks)
|
||||
|
||||
|
||||
### More images:
|
||||
|
||||
![image](https://github.com/laurent22/joplin/assets/5051088/1346d938-c376-4cab-82a7-98deb4283fe8)
|
||||
![image](https://github.com/laurent22/joplin/assets/5051088/b3a12b9f-704c-4dc8-b2bd-14ba7a1c4759)
|
||||
![image](https://github.com/laurent22/joplin/assets/5051088/c45becc4-44b7-4f95-9d49-421517e29592)
|
||||
|
Loading…
Reference in New Issue
Block a user