अपने Mac पर VS Code से एक ही प्रोजेक्ट कमांड चलाने के लिए, इसे .vscode/tasks.json में एक वर्कस्पेस टास्क के रूप में परिभाषित करें। फिर इसे टर्मिनल में बार-बार टाइप करने के बजाय कमांड पैलेट या टर्मिनल मेनू से शुरू करें। यह गाइड एक उदाहरण के रूप में npm test का उपयोग करता है; इसे ऐसे कमांड से बदलें जो आपका प्रोजेक्ट पहले से सपोर्ट करता हो। VS Code टास्क के लिए एक खुला हुआ वर्कस्पेस फ़ोल्डर होना आवश्यक है, इसलिए सबसे पहले VS Code में प्रोजेक्ट फ़ोल्डर खोलें। Visual Studio Code: Integrate with External Tools via Tasks
अपने प्रोजेक्ट में टास्क फ़ाइल बनाएँ
VS Code में, Shift+Command+P के साथ कमांड पैलेट खोलें, Tasks: Configure Task चलाएँ, और यदि VS Code यह विकल्प देता है तो Create tasks.json file from template चुनें। एक कस्टम टास्क के लिए Others चुनें। यदि tasks.json पहले से मौजूद है, तो दूसरी फ़ाइल बनाने के बजाय इसे खोलें और संपादित करें। यह फ़ाइल प्रोजेक्ट के .vscode फ़ोल्डर में होती है; इसे अपने प्रोजेक्ट के साथ कमिट (commit) करने से यह टास्क VS Code का उपयोग करने वाले अन्य सहयोगियों के लिए भी उपलब्ध हो जाता है। Visual Studio Code: Integrate with External Tools via Tasks
इस उदाहरण के लिए, इस कॉन्फ़िगरेशन को .vscode/tasks.json में डालें:
{
"version": "2.0.0",
"tasks": [
{
"label": "Run project tests",
"type": "shell",
"command": "npm",
"args": ["test"],
"options": {
"cwd": "${workspaceFolder}"
},
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
}
]
}
टास्क लेबल वह नाम है जिसे आप VS Code में चुनेंगे। यहाँ, command और args उदाहरण को निष्पादन योग्य (executable) npm और उसके बाद इसके test तर्क (argument) के रूप में व्यक्त करते हैं। इन्हें अपने प्रोजेक्ट के मौजूदा कमांड से मेल खाने के लिए बदलें: उदाहरण के लिए, एक कमांड-लाइन टूल और उसके तर्क, या एक मौजूदा स्क्रिप्ट। टास्क डिपेंडेंसी इंस्टॉल नहीं करता है, प्रोजेक्ट स्क्रिप्ट नहीं बनाता है, या यह निर्धारित नहीं करता है कि कमांड को क्या करना चाहिए। पहले प्रोजेक्ट के अपने दस्तावेज़ या स्क्रिप्ट की जाँच करें। cwd वर्किंग डायरेक्टरी को वर्कस्पेस के रूप में खोले गए फ़ोल्डर पर सेट करता है; यह तब मायने रखता है जब किसी कमांड को उस फ़ोल्डर के सापेक्ष प्रोजेक्ट फ़ाइलों को खोजने की उम्मीद होती है। Visual Studio Code: Integrate with External Tools via Tasks
इसे Mac इंटरफ़ेस से फिर से चलाएँ
tasks.json को सेव करें। Shift+Command+P के साथ कमांड पैलेट खोलें, Tasks: Run Task चलाएँ, और Run project tests चुनें। आप Terminal > Run Task का भी उपयोग कर सकते हैं। टास्क समाप्त होने के बाद, उन चरणों को दोहराएं और उसी लेबल का चयन करें। कॉन्फ़िगर किया गया टास्क VS Code के एकीकृत टर्मिनल में चलता है। Visual Studio Code: Integrate with External Tools via Tasks
उदाहरण में, टास्क चलने पर reveal: always टर्मिनल पैनल को सामने लाता है। panel: dedicated बाद के रनों पर इस कार्य के लिए टर्मिनल का पुन: उपयोग करता है, जिससे इसका आउटपुट अन्य कार्यों से अलग रहता है। आउटपुट को बैकग्राउंड में रखने के लिए, reveal को never पर सेट करें; इसका निरीक्षण करने के लिए आपको टर्मिनल पैनल को स्वयं सामने लाना होगा। ये विकल्प प्रेजेंटेशन को प्रभावित करते हैं, कमांड के व्यवहार को नहीं या यह सफल होता है या नहीं। Visual Studio Code: Integrate with External Tools via Tasks
कॉन्फ़िगरेशन को इस बात से मिलाएं कि आपका कमांड कैसे चलता है
जब कमांड शेल व्यवहार पर निर्भर करता है, तो type: shell का उपयोग करें। सीधे किसी निष्पादन योग्य (executable) को लॉन्च करने वाले कमांड के लिए, type: process शेल इंटरप्रिटेशन से बचा सकता है। VS Code दोनों टास्क प्रकारों का दस्तावेजीकरण करता है; अपनी आवश्यकता के कमांड और तर्कों के अनुसार चुनें। शेल टास्क के साथ, रिक्त स्थान (spaces) और विशेष वर्णों के लिए कोटिंग (quoting) की आवश्यकता हो सकती है। निष्पादन योग्य और तर्कों को अलग करना जैसा कि उदाहरण में है, पूरी कमांड लाइन को एक स्ट्रिंग में एम्बेड करने से बचने में मदद करता है, हालांकि जहां आवश्यक हो वहां शेल-विशिष्ट कोटिंग नियम अभी भी लागू होते हैं। Visual Studio Code: Integrate with External Tools via Tasks
यदि कमांड को किसी सबफ़ोल्डर में शुरू होना चाहिए, तो cwd को ${workspaceFolder} के अंतर्गत किसी पथ में बदलें, जैसे कि ${workspaceFolder}/client। ${workspaceFolder} VS Code में खोले गए फ़ोल्डर को संदर्भित करता है, और macOS पथ फॉरवर्ड स्लैश का उपयोग करते हैं। यदि आप शेल टास्क में किसी वेरिएबल का उपयोग करते हैं, तो याद रखें कि प्रतिस्थापन स्वचालित रूप से कोट्स नहीं जोड़ता है; रिक्त स्थान वाले पथों के लिए शेल-उपयुक्त कोटिंग की आवश्यकता हो सकती है। Visual Studio Code: Variables Reference
यदि कोई टास्क टर्मिनल विंडो में काम करता है लेकिन VS Code में विफल रहता है, तो जांचें कि निष्पादन योग्य फ़ाइल उस परिवेश (environment) के लिए उपलब्ध है जिसका VS Code उपयोग करता है और चयनित वर्किंग डायरेक्टरी में अपेक्षित फ़ाइलें शामिल हैं। VS Code एक ऑटोमेशन शेल को terminal.integrated.automationProfile.* के माध्यम से अलग से कॉन्फ़िगर करने की अनुमति देता है, या options.shell के माध्यम से एक टास्क-विशिष्ट शेल की अनुमति देता है; टास्क पहले से खुले इंटरैक्टिव टर्मिनल के समान परिवेश की गारंटी नहीं देता है। Visual Studio Code: Integrate with External Tools via Tasks
टास्क किसी कमांड को इनवोक करने और उसके टर्मिनल आउटपुट का निरीक्षण करने का एक दोहराव योग्य तरीका है। यह कोई प्रोजेक्ट कमांड नहीं बनाता है, विफल हो रहे कमांड को ठीक नहीं करता है, या किसी प्रोजेक्ट द्वारा उपयोग किए जाने वाले प्रत्येक कमांड का स्वचालित रूप से अनुमान नहीं लगाता है। ऐसे कमांड से शुरुआत करें जो उस प्रोजेक्ट के लिए पहले से चलता हो, फिर अपनी दिनचर्या के अनुकूल उसके टास्क लेबल, तर्क, वर्किंग डायरेक्टरी और टर्मिनल डिस्प्ले को समायोजित करें।
स्रोत
Integrate with External Tools via Tasks — Visual Studio Code
Variables Reference — Visual Studio Code