मूल नोड परियोजना के लिए "गुण 'कार्यक्रम मौजूद नहीं है"


83

मैंने सरल नोड.जेएस एप्लिकेशन (स्रोत कोड यहां से https://azure.microsoft.com/en-us/blog/visual-studio-code-and-azure-app-service-a-perfect-fit/ ) बनाया

var http = require('http');
http.createServer(function (req, res) {
    console.log('Got request for ' + req.url);
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('<h1>Hello Code and Azure Web Apps!</h1>');
}).listen(process.env.PORT);

और लॉन्च किए गए VSCode लॉन्च पर क्लिक किया। json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/app.js",
            "stopOnEntry": false,
            "args": [],
            "cwd": "${workspaceRoot}",
            "preLaunchTask": null,
            "runtimeExecutable": null,
            "runtimeArgs": [
                "--nolazy"
            ],
            "env": {
                "NODE_ENV": "development"
            },
            "externalConsole": false,
            "sourceMaps": false,
            "outDir": null
        },
        {
            "name": "Attach",
            "type": "node",
            "request": "attach",
            "port": 5858,
            "address": "localhost",
            "restart": false,
            "sourceMaps": false,
            "outDir": null,
            "localRoot": "${workspaceRoot}",
            "remoteRoot": null
        }
    ]
}

और अभी भी लॉन्च होने पर मैं देखता हूं:

गुण 'कार्यक्रम' मौजूद नहीं है।

क्या कोई गलत मदद कर सकता है?

जवाबों:


73

मेरा मानना ​​है कि आपको जरूरत है ${workspaceRoot}/server.js, इसके ${workspaceRoot}/app.jsलिए नहीं program। आपके द्वारा उपयोग किए जा रहे कोड में एक app.js नहीं है, यही वह है (जो कि खराब शब्द) त्रुटि आपको बता रही है।


ऊपर सही उत्तर है। यह "program": "${workspaceRoot}/app.js",त्रुटि पैदा करने वाली रेखा है; इस पंक्ति द्वारा संदर्भित js फ़ाइल मौजूद नहीं है।
यूलिंग

मैं नहीं मानता कि यह सही है। App.js के साथ कुछ भी गलत नहीं है। मैंने इसकी कोशिश नहीं की, लेकिन कॉलिन का जवाब है कि मैं हमेशा क्या करता हूं।
टॉम स्टिकेल

यह उत्तर दिए गए प्रश्न के लिए सही था। प्रश्न में सूचीबद्ध ब्लॉग पोस्ट फ़ाइल server.jsको स्टार्टअप फ़ाइल के रूप में उपयोग करता है । शायद एक बेहतर जवाब " programविशेषता गलत फ़ाइल को इंगित कर रही है" होगा
mdickin

28

मुझे यह समस्या इसलिए भी आई क्योंकि VS कोड ने .vscode निर्देशिका को launch.json फ़ाइल में रखा था। इसने इसे एक निर्देशिका के रूप में रखा, इसलिए मुझे निर्देशिका को पथ में जोड़ना पड़ा जैसा कि लॉन्च में परिभाषित किया गया था। फ़ाइल फ़ाइल:

"कार्यक्रम": "$ {कार्यक्षेत्ररूट} /myDir/app.js",

आशा है कि ये आपकी मदद करेगा।


मेरा मानना ​​है कि आपके पास सही उत्तर है क्योंकि मैं इस मुद्दे पर फिर से एक अलग कंप्यूटर पर चल रहा था और यह भूल गया कि मैंने पहले क्या किया था और आपके उत्तर को देखा और याद किया कि यह सही है।
टॉम स्टिकेल

हाँ, यह काम किया! ऐसा तब होता है जब आपके पास सबफ़ोल्डर (myDir) में आपका नोड प्रोजेक्ट होता है, न कि रूट और .vscode फ़ोल्डर (जिसके तहत लॉन्च। Json मौजूद होता है) को रूट पर बनाया जाता है।
अजय चेब्बी

14

एक और मुद्दा मैं भागा, एक तरीका कॉन्फ़िगर Using\\Backslashes\\Like\\Soकिया गया था और विंडोज पर ठीक काम किया गया था , लेकिन मैक पर उसने उपरोक्त त्रुटि दी।

(समाधान: बदल दिया गया /)


1
हां, यह मेरे लिए था। विंडोज पर वापस स्लैश, लेकिन रास्पियन पर आगे स्लैश की आवश्यकता थी।
जॉन मिल्स

4

त्रुटि कह रही है कि आपके कोड का पथ गलत था।

VSCode अपनी कॉन्फ़िगरेशन फ़ाइल की मूल निर्देशिका ".vscode / launch.json" को "$ {workspaceRoot}" या "$ {workspaceFolder}" के रूप में परिभाषित करता है।

इसलिए, उदाहरण के लिए, यदि आप "myproject / subfolder / main.js" फ़ाइल चलाना चाहते हैं, तो आपको अपने "myproject / .vscode / launch.json" को निम्नानुसार कॉन्फ़िगर करना चाहिए: "program": "${workspaceRoot}/subfolder/main.js"

ध्यान दें कि कॉन्फ़िगर "program": "${workspaceRoot}/myproject/subfolder/main.js" करना एक गलती है और त्रुटि का कारण होगा "गुण 'कार्यक्रम' मौजूद नहीं है"।


3

मैं आज कुछ घंटे बर्बाद कर इस समस्या का पता लगाने की कोशिश कर रहा हूं। मेरे लिए जो काम किया गया था, वह मौजूदा लॉन्च को हटा रहा था। आगजनी और एप्लिकेशन चलाना, जो आपको एक एनवायरमेंट चुनने के लिए प्रेरित करता है, जो मेरे मामले में नोड था। इससे एक नया लॉन्च हुआ। Json जिसमें मैंने प्रोग्राम पथ को अपडेट किया।


2

त्रुटि को आदर्श रूप से पढ़ा जाना चाहिए 'प्रोग्राम विशेषता में निर्दिष्ट फ़ाइल मौजूद नहीं है' क्योंकि यही हो रहा है। VSCode 1.30.2 के रूप में, यह आपको त्रुटि के साथ रास्ता दिखाता है।

मेरे मामले में मेरे पास "program": "${workspaceFolder}\\${file}"रास्ता कुछ ऐसा थाc:\dir\c:\dir\file.js

मैंने इसे हटाकर सही किया ${workspaceFolder}क्योंकि मैं व्यक्तिगत फ़ाइलों को डीबग करना चाहता था।


1

मेरी भी यही समस्या थी। मेरे मामले में मेरे लॉन्च.जसन में निम्नलिखित लाइन थी

"program": "${workspaceFolder}\\index.js"

मेरा सक्रिय कोड जिसे मैंने डीबग करने का प्रयास किया था, वह app_v2.js में था, इसलिए मैंने इसे निम्नलिखित पर अपडेट किया, और फिर डीबग ने काम किया।

"program": "${workspaceFolder}\\app_v2.js"

1

सबसे पहले, आधिकारिक दस्तावेज़ को पढ़ें यह सभी सवालों के जवाब देता है जो आपके पास विभिन्न परिदृश्यों का उपयोग करने के लिए सही विशेषताओं को सेट करने के बारे में होगा launch.json

अब, विशेष रूप से इस प्रश्न का उत्तर देने के लिए, ${workspaceFolder}मूल रूप से निर्देशिका की .vscodeनिर्देशिका है, जो आपकी परियोजना रूट निर्देशिका है। इसलिए, अपने डिबगिंग प्रोग्राम के रूप में विशिष्ट फ़ाइलों को सेट करते समय, प्रोजेक्ट रूट डायरेक्टरी से पथ को मैप करना याद रखें, या दूसरे शब्दों में डिबगिंग प्रोग्राम के रूप में सेट की जाने वाली फ़ाइल का सापेक्ष पथ। यह आसानी से फ़ाइल को राइट-क्लिक करके और Copy Relative Pathविकल्प का चयन करके आईडीई (वीएस कोड) से आसानी से प्राप्त किया जा सकता है । फिर इसे अपनी launch.jsonफ़ाइल में प्रोग्राम विशेषता में $ {कार्यक्षेत्र फ़ोल्डर } के बगल में पेस्ट करने के लिए आगे बढ़ें , जैसे नीचे समस्या को ठीक करेगा।

"program": "${workspaceFolder}/<relative_path>"

पहले बताए अनुसार अपने कॉपी किए गए रिश्तेदार पथ के साथ सापेक्ष पथ को बदलें नोट कि मैं एक मैक प्लेटफ़ॉर्म पर हूं। कृपया प्लेटफ़ॉर्म उपयुक्त पथ विभाजक का उपयोग करें

वैकल्पिक रूप से, विशेष रूप से लॉन्च कॉन्फ़िगरेशन का उपयोग नहीं करने से समझ में आता है कि यह एक नॉट-फॉर-प्रोडक्शन या एक साधारण ऐप है जो लॉन्च कॉन्फ़िगरेशन फ़ाइल को वारंट नहीं करता है। हालाँकि, यदि नहीं, तो मल्टी-टारगेट वातावरण (सर्वर, क्लाइंट) में डीबगिंग करते समय यह सुपर उपयोगी है। मेरी राय में, एक यौगिक लॉन्च कॉन्फ़िगरेशन सेटअप का उपयोग करना चीजों को बहुत आसान बनाता है। अपने सर्वर और क्लाइंट फ़ाइलों के सापेक्ष रास्तों को ध्यान में रखते हुए इसे कैसे सेट करें, यह जानने के लिए आधिकारिक डॉक्स का यह खंड पढ़ें ।


0

मेरे पास एक ही सवाल था और मुझे यह पता लगाने में कुछ घंटे लगे। मैंने मूल रूप से क्या किया था कि मैंने बाद में फ़ोल्डर को हटा दिया${workspaceFolder}

यह प्रारूप ${workspaceFolder}/xxxx\\folder\\subfolder\\subfolder "वर्कस्पेसफॉल्डर" के बाद जो है उसे हटाकर और डबल बैकवर्ड स्लैश से अपना रास्ता शुरू करने के बाद, इसने मेरे लिए इसे ठीक किया।


0

मेरे पास एक ही त्रुटि थी, क्योंकि मैं इस तरह "कार्यक्रम" विशेषता के अंदर तर्क पारित कर रहा था:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Build -B -p",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}\\app\\build -B -p D:\\apps\\12"
        }
    ]
}

मेरे लिए क्या हल किया गया था "args" विशेषता के अंदर तर्क पारित करने के लिए, इस तरह:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Build -B -p",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}\\app\\build",
            "args":["-B", "-pD:\\apps\\12"]
        }
    ]
}

ओएस विंडोज 7 था।


0

इसका सीधा सा मतलब है कि जब आप फाइल को डीबग करते हैं। जेएस फाइल बस मौजूद नहीं होती है और जब आप डीबगिंग करते हैं तो यह एरर दिखाता है। यहां समस्या को ठीक करने का मेरा तरीका है: बस कार्यक्रम के मूल्य को बदलें

"${workspaceRoot}/app.js"

द्वारा

"${workspaceFolder}/${fileBasenameNoExtension}.js"

मुझे उम्मीद है कि यह आपकी सभी समस्याओं को हल कर देगा।


0

जो लोग विजुअल स्टूडियो 2019 का उपयोग कर रहे हैं , आज के लिए मैं "मास्टर" VS2019 में Node.js की कोशिश कर रहा था। मैं फ़ोल्डर में चला server.tsगया srcताकि मेरा jsआउटपुट libफ़ोल्डर में हो जाए ।

उसके बाद मुझे वह संदेश मिलना शुरू हो गया। यहाँ मेरी परियोजना फ़ाइल में किए गए परिवर्तन हैं जो इसे काम कर रहे हैं।

<StartupFile>lib\server.js</StartupFile>
<WorkingDirectory>lib</WorkingDirectory>
<OutputPath>lib</OutputPath>

मुझे उम्मीद है कि यह विषय से बाहर नहीं है, यह वीएस आईडीई उपयोगकर्ताओं की मदद कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.