L'esecuzione di npm di prova in un terminale di debug in VSCode

0

Domanda

Sto cercando di creare una configurazione nel mio lancio.json che verrà eseguito npm test nella cartella in cui l' .js risiede il file. In esecuzione npm test manualmente in un terminale funziona bene, tenendo il relativo comando dal scripts parte della mia package.json:

"scripts": {
    "start": "node --experimental-json-modules nodeserver.js",
    "test": "export MY_VAR=abc && node --experimental-json-modules nodeserver.js"
},

In particolare, durante l'esecuzione npm test direttamente in un terminale, l'env var specificato nel test script della riga di porta e l'effetto --experimental-json-modules la bandiera è passato a node.

Questo è il mio lancio.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": [
        {
            "command": "npm test",
            "name": "Run npm test",
            "request": "launch",
            "type": "node-terminal"
        }
    ]
}

Questo è praticamente come-è una delle opzioni predefinite suggerito nell'editor, ed è molto simile a questo.

Ma quando ho eseguito questa configurazione nodeserver.js file, ottengo:

enter image description here

Sembra essere in esecuzione node senza la bandiera l'ho specificato nella configurazione? Che cosa sto malinteso circa come questo launch.json schema funziona?

La MODIFICA più ho giocato intorno, più sembra come se la configurazione è solo di essere completamente ignorato, in modo che utilizza l'impostazione predefinita node.js di configurazione... ho scelto la config dal menu a discesa e premere l'icona di riproduzione:

enter image description here

Dovrebbe funzionare?

A parte l'esecuzione di npm start in un terminale, l'unico "automatico" modo di ottenere questo lavoro è per l'apertura del package.json e facendo clic sul pulsante di Debug che appare dalla scripts tag:

enter image description here

Ma mi piacerebbe capire come utilizzare launch.json correttamente, in modo che posso passare le variabili di ambiente ecc via che invece.

debugging node.js npm visual-studio-code
2021-11-23 19:08:15
2
0

Si può provare a creare il npm script di test direttamente nel vostro lancio.json come sopra:

{
// 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": [
    {
        "name": "Run npm test",
        "request": "launch",
        "type": "node",
        "args": ["--experimental-json-modules", "${workspaceFolder}/nodeserver"],
        "env": {
           "MY_VAR": "abc"
        }

    }
]
}
2021-11-29 11:39:31

La stessa cosa succede con questo launch.json troppo... sembra come se la configurazione è solo di essere completamente ignorato, in modo che utilizza l'impostazione predefinita node.js configurazione di lancio.
drmrbrewer
0

il lancio.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "pwa-node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}\\index.js"
        },
        {
            "type": "pwa-node",
            "request": "launch",
            "name": "Run Test",
            "skipFiles": 
            [
                "<node_internals>/**"
            ],

            // You can specify enviorment variables per config here
            // using key value pairs
            "env": 
            {
                "test_variable": "test value"
            },

            // You can also specify a .env file that contains them
            "envFile": "${workspaceFolder}/.env",

            // Here you specify the file you want launched
            "program": "${workspaceFolder}\\test.js",

            // add args to nodejs here
            "runtimeArgs": 
            [
                "--experimental-json-modules"
            ],
        }
    ]
}

Per riferimento: https://code.visualstudio.com/docs/nodejs/nodejs-debugging

2021-12-02 10:34:50

La stessa cosa succede con questo launch.json troppo... sembra come se la configurazione (compreso il --experimental-json-modules arg) viene completamente ignorato, in modo che utilizza l'impostazione predefinita node.js configurazione di lancio, senza alcun args. Forse sono solo il lancio di questo in modo non corretto... e come fai? Il modo in cui sto facendo è il post originale.
drmrbrewer

@drmrbrewer i selezionare il profilo e quindi premere F5. Ho appena dato che passare un test e ha funzionato. i.imgur.com/CiRXX6X.png
John

Yep. F5 è l'equivalente di quello che stavo facendo... e premendo il pulsante "play" accanto al nome del profilo... ancora ho lo stesso errore e il runtime args specificato sono solo di essere completamente ignorato... nessuna idea di cosa sta succedendo.
drmrbrewer

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................