Π― ΠΏΡΡΠ°ΡΡΡ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Node Ρ ΠΏΠΎΠΌΠΎΡΡΡ Windows Subsytem Π΄Π»Ρ Linux, Π½ΠΎ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΡΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ.
ΠΡΠΎ ΠΌΠΎΠΉ launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch NestJS",
"useWSL": true,
"console": "integratedTerminal",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"start:dev"
],
"port": 5000,
}
]
}
ΠΈ Π²ΠΎΡ ΡΡΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ:
isiah@isiah-acer:/mnt/c/Users/Isiah/Documents/Programming_Projects/etc/podcast_db/new-api$ cd "c:\Users\Isiah\Documents\Programming_Projects\etc\podcast_db\new-api" ; "C:\WINDOWS\System32\bash.exe" -ic "npm run-script start:dev"
-bash: cd: c:\Users\Isiah\Documents\Programming_Projects\etc\podcast_db\new-api: No such file or directory
C:\WINDOWS\System32\bash.exe: command not found
Π Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ npm run-script start:dev
Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ nodemon
ΠΈ Π²ΠΎΡ ΠΌΠΎΠΉ nodemon.json:
{
"watch": [
"src"
],
"ext": "ts",
"ignore": [
"src/**/*.spec.ts"
],
"exec": "node -r tsconfig-paths/register --inspect=5000 --require ts-node/register src/main.ts"
}
ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π»ΠΈ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ ?: ΠΠ°
ΠΡΠΎ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ "console": "integratedTerminal"
ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ°. "useWSL": true
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ
Π²Π°ΡΠΈΡΡ.
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ WSL workspaceFolder ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ°:
"localRoot": "${workspaceFolder}",
"remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
ΠΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ:
{
"type": "node",
"request": "launch",
"name": "Run NPM script in WSL",
"useWSL": true,
"localRoot": "${workspaceFolder}",
"remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"foo",
],
"internalConsoleOptions": "openOnSessionStart",
"skipFiles": [
"<node_internals>/**/*.js",
],
},
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΊΠΊΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΊΡΡ ββΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°:
{
"type": "node",
"request": "launch",
"name": "Run mocha tests in WSL",
"useWSL": true,
"localRoot": "${workspaceFolder}",
"remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"-u",
"tdd",
"--timeout",
"999999",
"--colors",
"--exit",
"${command:extension.vscode-wsl-workspaceFolder}/tests/test.js"
],
"internalConsoleOptions": "openOnSessionStart",
"skipFiles": [
"<node_internals>/**/*.js",
],
},
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠΎΠ½ΡΠΎΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈΒ».
@ n0v1 Π£ ΠΌΠ΅Π½Ρ
Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° WSL, ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ° Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΊΡΠΈΡΠΈΡΠ½Π° Π΄Π»Ρ ΠΌΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ. Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ python ΡΠ°Π±ΠΎΡΠ°ΡΡ π€
ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎΠ± ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ VS Code, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΈΡΠ°ΠΉΡΠ΅ Π² Π±Π»ΠΎΠ³Π΅
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ
"console": "integratedTerminal"
ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ°."useWSL": true
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ Π²Π°ΡΠΈΡΡ.ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ WSL workspaceFolder ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ°:
ΠΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ:
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΊΠΊΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΊΡΡ ββΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠΎΠ½ΡΠΎΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈΒ».