clasp के साथ कमांड-लाइन इंटरफ़ेस का इस्तेमाल करना

Apps Script एडिटर के बजाय, अपने टर्मिनल से Google Apps Script प्रोजेक्ट डेवलप और मैनेज करने के लिए, ओपन-सोर्स टूल clasp का इस्तेमाल करें.

clasp कोडलैब में, clasp की सभी सुविधाओं के बारे में खास जानकारी दी गई है.

सुविधाएं

clasp में ये सुविधाएं शामिल हैं:

स्थानीय तौर पर डेवलप करना

clasp की मदद से, Apps Script प्रोजेक्ट को स्थानीय तौर पर डेवलप किया जा सकता है. अपने कंप्यूटर पर कोड लिखें और पूरा होने पर उसे Apps Script पर अपलोड करें. Apps Script के मौजूदा प्रोजेक्ट भी डाउनलोड किए जा सकते हैं, ताकि उन्हें ऑफ़लाइन मोड में बदला जा सके. Apps Script प्रोजेक्ट बनाते समय, अपने पसंदीदा डेवलपमेंट टूल इस्तेमाल करें. जैसे, git.

डिप्लॉयमेंट के वर्शन मैनेज करना

अपने प्रोजेक्ट के कई डप्लॉयमेंट बनाएं, अपडेट करें, और देखें.

स्ट्रक्चर कोड

clasp की मदद से, अपने कोड को डायरेक्ट्री में व्यवस्थित किया जा सकता है. इन डायरेक्ट्री को script.google.com पर अपलोड करने के बाद भी सुरक्षित रखा जाता है. उदाहरण के लिए:

# On script.google.com:
├── tests/slides.gs
└── tests/sheets.gs

# Locally:
├── tests/
│   ├─ slides.gs
│   └─ sheets.gs

प्रोजेक्ट टाइप

clasp का इस्तेमाल, स्टैंडअलोन और कंटेनर-बाउंड, दोनों तरह के स्क्रिप्ट प्रोजेक्ट को मैनेज करने के लिए किया जा सकता है.

स्टैंडअलोन प्रोजेक्ट

स्टैंडअलोन प्रोजेक्ट, आपकी Google Drive में एक अलग फ़ाइल के तौर पर दिखता है. clasp create कमांड का इस्तेमाल करके, नई स्टैंडअलोन स्क्रिप्ट बनाई जा सकती है.

कंटेनर से जुड़े प्रोजेक्ट

कंटेनर से जुड़ा प्रोजेक्ट, Google Docs, Sheets, Slides या Google Forms की फ़ाइल से जुड़ा होता है. clasp create कमांड का इस्तेमाल करके, किसी नई फ़ाइल से जुड़ी नई कंटेनर-बाउंड स्क्रिप्ट बनाई जा सकती है. --parentId फ़्लैग का इस्तेमाल करके, किसी मौजूदा फ़ाइल में नई स्क्रिप्ट भी अटैच की जा सकती है.

अन्य तरह के प्रोजेक्ट

clasp, वेब ऐप्लिकेशन और एपीआई के लिए स्क्रिप्ट बनाने की सुविधा भी देता है.

ज़रूरी शर्तें

clasp को Node.js में लिखा गया है और इसे npm टूल का इस्तेमाल करके डिस्ट्रिब्यूट किया जाता है. clasp का इस्तेमाल करने से पहले, आपके पास Node.js 20.0.0 या इसके बाद का वर्शन इंस्टॉल होना चाहिए. Node.js को इंस्टॉल करने के लिए, एडमिन के अधिकार होने ज़रूरी हैं.

इंस्टॉल करना

Node.js इंस्टॉल करने के बाद, npm इंस्टॉल करने के लिए, यहां दिया गया npm निर्देश इस्तेमाल करें:clasp

npm install @google/clasp -g

इंस्टॉल हो जाने के बाद, अपने कंप्यूटर पर किसी भी डायरेक्ट्री से clasp कमांड का इस्तेमाल करें.

clasp का इस्तेमाल करें

कमांड लाइन से कई तरह के टास्क मैनेज करने के लिए, clasp का इस्तेमाल करें. इस सेक्शन में, clasp का इस्तेमाल करके डेवलपमेंट करते समय की जाने वाली सामान्य कार्रवाइयों के बारे में बताया गया है.

लॉगिन करें

इस कमांड से, आपके Google खाते के Apps Script प्रोजेक्ट में लॉग इन किया जाता है और उन्हें मैनेज करने की अनुमति दी जाती है. इसे चलाने के बाद, आपको उस Google खाते में साइन इन करने के लिए कहा जाता है जिसमें आपके Apps Script प्रोजेक्ट सेव किए गए हैं.

clasp login

लॉगआउट करें

इस कमांड से, कमांड-लाइन टूल से लॉग आउट हो जाता है. clasp login का इस्तेमाल जारी रखने से पहले, Google से फिर से पुष्टि करने के लिए, clasp login का इस्तेमाल करके फिर से साइन इन करें.clasp

clasp logout

नया Apps Script प्रोजेक्ट बनाना

इस कमांड से, मौजूदा डायरेक्ट्री में एक नई स्क्रिप्ट बनती है. इसमें स्क्रिप्ट का टाइटल देना ज़रूरी नहीं है.

clasp create [scriptTitle] [--type <projectType>] [--parentId <parentId>]

इस कमांड में, यहां दिए गए वैकल्पिक पैरामीटर इस्तेमाल किए जाते हैं:

  • scriptTitle: स्क्रिप्ट प्रोजेक्ट का टाइटल.
  • --type <projectType>: किस तरह का प्रोजेक्ट बनाना है. standalone, docs, sheets, slides, forms, webapp, और api को वैल्यू के तौर पर इस्तेमाल किया जा सकता है.
  • --parentId <parentId>: यह मौजूदा Google Drive फ़ाइल (दस्तावेज़, शीट, स्लाइड या फ़ॉर्म) का आईडी है, जिससे नए स्क्रिप्ट प्रोजेक्ट को बाइंड किया जाना चाहिए.

इस कमांड से, मौजूदा डायरेक्ट्री में दो फ़ाइलें भी बनती हैं:

  • यह एक .clasp.json फ़ाइल होती है, जिसमें स्क्रिप्ट आईडी सेव होता है.
  • appsscript.json प्रोजेक्ट मेनिफ़ेस्ट फ़ाइल, जिसमें प्रोजेक्ट का मेटाडेटा होता है.

किसी मौजूदा प्रोजेक्ट का क्लोन बनाना

इस कमांड से, मौजूदा डायरेक्ट्री में किसी मौजूदा प्रोजेक्ट को क्लोन किया जाता है. स्क्रिप्ट को आपके Google खाते से बनाया या शेयर किया जाना चाहिए. आपको स्क्रिप्ट आईडी देकर, क्लोन करने के लिए स्क्रिप्ट प्रोजेक्ट तय करना होगा. स्टैंडअलोन और कंटेनर से जुड़े, दोनों तरह के प्रोजेक्ट को क्लोन किया जा सकता है.

प्रोजेक्ट का स्क्रिप्ट आईडी ढूंढने के लिए:

  1. Apps Script प्रोजेक्ट खोलें.
  2. बाईं ओर, प्रोजेक्ट सेटिंग पर क्लिक करें.
  3. आईडी में जाकर, स्क्रिप्ट आईडी को कॉपी करें.

    क्लैस्प क्लोन

स्क्रिप्ट प्रोजेक्ट डाउनलोड करना

इस कमांड से, Apps Script प्रोजेक्ट को Google Drive से आपके कंप्यूटर के फ़ाइल सिस्टम में डाउनलोड किया जाता है.

clasp pull

कोई स्क्रिप्ट प्रोजेक्ट अपलोड करना

इस कमांड से, स्क्रिप्ट प्रोजेक्ट की सभी फ़ाइलों को आपके कंप्यूटर से Drive पर अपलोड किया जाता है.

clasp push

प्रोजेक्ट के वर्शन की सूची बनाना

इस कमांड से, स्क्रिप्ट प्रोजेक्ट के हर वर्शन की संख्या और ब्यौरे की सूची मिलती है.

clasp versions

पब्लिश किए गए प्रोजेक्ट को डिप्लॉय करना

स्क्रिप्ट प्रोजेक्ट को वेब ऐप्लिकेशन, Google Workspace ऐड-ऑन या एक्ज़ीक्यूटेबल के तौर पर डिप्लॉय करें. स्क्रिप्ट एडिटर में, प्रोजेक्ट के मेनिफ़ेस्ट में या clasp का इस्तेमाल करके डप्लॉयमेंट बनाएं.

clasp की मदद से किसी प्रोजेक्ट को डिप्लॉय करने के लिए, सबसे पहले Apps Script प्रोजेक्ट का ऐसा वर्शन बनाएं जिसे बदला न जा सके. वर्शन, स्क्रिप्ट प्रोजेक्ट का "स्नैपशॉट" होता है. यह सिर्फ़ पढ़ने के लिए उपलब्ध ब्रांच की गई रिलीज़ जैसा होता है.

clasp version [description]

इस कमांड से, नया वर्शन नंबर दिखता है. उस नंबर का इस्तेमाल करके, अपने प्रोजेक्ट के इंस्टेंस डिप्लॉय और अनडिप्लॉय करें:

clasp deploy [version] [description]
clasp undeploy <deploymentId>

यह कमांड, मौजूदा डिप्लॉयमेंट को नए वर्शन और जानकारी के साथ अपडेट करती है:

clasp redeploy <deploymentId> <version> <description>

डिप्लॉयमेंट की सूची बनाना

इस कमांड से, स्क्रिप्ट प्रोजेक्ट के डिप्लॉयमेंट आईडी, वर्शन, और उनके ब्यौरे की सूची मिलती है.

clasp deployments

Apps Script एडिटर में प्रोजेक्ट खोलना

इस कमांड से, Apps Script एडिटर में स्क्रिप्ट प्रोजेक्ट खुल जाता है. एडिटर, आपके डिफ़ॉल्ट वेब ब्राउज़र में एक नए टैब के तौर पर लॉन्च होता है.

clasp open-script

clasp ओपन-सोर्स प्रोजेक्ट में योगदान देना

GitHub पर clasp में योगदान दें.

clasp और GitHub Actions की मदद से, Apps Script के लिए CI/CD

इस गाइड में, clasp और GitHub Actions का इस्तेमाल करके, Google Apps Script प्रोजेक्ट के लिए अपने-आप लिंटिंग, टेस्टिंग, और डिप्लॉयमेंट सेट अप करने के बारे में बताया गया है.

1. ज़रूरी शर्तें

शुरू करने से पहले, ज़रूरी शर्तें में दिए गए सेटअप के चरण पूरे करें.

आपको इनकी भी ज़रूरत होगी:

  • GitHub रिपॉज़िटरी.
  • Apps Script API, script.google.com/home/usersettings पर चालू है.

2. सीआई में पुष्टि करने की सुविधा

सीआई रनर, OAuth के लिए ब्राउज़र नहीं खोल सकते. इसलिए, क्रेडेंशियल को GitHub Secrets के तौर पर सेव करें:

गोपनीय मान
CLASPRC_JSON ~/.clasprc.json का कॉन्टेंट (clasp login ने बनाया है)
CLASP_JSON .clasp.json (आपकी स्क्रिप्ट आईडी मैपिंग) का कॉन्टेंट

.clasprc.json में मौजूद रीफ़्रेश टोकन, आपके Apps Script प्रोजेक्ट का ऐक्सेस देता है. इसे संवेदनशील क्रेडेंशियल के तौर पर मानें और समय-समय पर इसे बदलें.

अपने .gitignore में .clasprc.json और .clasp.json जोड़ें. इनमें क्रेडेंशियल होते हैं और इन्हें कभी भी कमिट नहीं किया जाना चाहिए.

3. CI वर्कफ़्लो — पीआर पर लिंट और टेस्ट करें

.github/workflows/ci.yml:

name: CI
on:
  pull_request:
    branches: [main]

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6.3
      - uses: actions/setup-node@v6.3
        with:
          node-version: "20"
          cache: npm
      - run: npm ci
      - run: npm run lint

4. सीडी वर्कफ़्लो — मर्ज करने पर डिप्लॉय करें

.github/workflows/deploy.yml:

name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: npm
      - run: npm ci
      - run: npm run lint && npm test
      - name: Setup clasp credentials
        run: |

          echo '${{ secrets.CLASPRC_JSON }}' > ~/.clasprc.json
          echo '${{ secrets.CLASP_JSON }}' > .clasp.json

      - name: Push and version
        run: |
          npx @google/clasp push --force
          npx @google/clasp version "$(git rev-parse --short HEAD)"

--force फ़्लैग, पुष्टि किए बिना रिमोट कोड को बदल देता है. यह पाइपलाइन सेट अप हो जाने के बाद, Apps Script एडिटर में मैन्युअल तरीके से बदलाव न करें. ऐसा इसलिए, क्योंकि रिपॉज़िटरी ही सच्चाई का एकमात्र सोर्स बन जाती है.

5. एक से ज़्यादा एनवायरमेंट में डिप्लॉयमेंट

अलग-अलग डेवलपमेंट/स्टेजिंग/प्रोडक्शन एनवायरमेंट के लिए, हर एनवायरमेंट के लिए एक अलग Apps Script प्रोजेक्ट बनाएं. साथ ही, उनके कॉन्फ़िगरेशन को अलग-अलग सीक्रेट (CLASP_JSON_DEV, CLASP_JSON_STAGING, CLASP_JSON_PROD) के तौर पर सेव करें. वर्कफ़्लो में, डिप्लॉय की जा रही ब्रांच के आधार पर, .clasp.json में सही सीक्रेट लिखें.

समस्या का हल

गड़बड़ी ठीक करें
"Script API चालू नहीं है" script.google.com/home/usersettings पर चालू करें
"401 अनधिकृत" clasp login को स्थानीय तौर पर फिर से चलाएं और CLASPRC_JSON सीक्रेट को अपडेट करें
"ENOENT .clasp.json" पुष्टि करें कि क्रेडेंशियल की पुष्टि करने वाला चरण, clasp push से पहले फ़ाइल लिखता है
पुश हो गया है, लेकिन कोड में कोई बदलाव नहीं हुआ है पुष्टि करें कि सीक्रेट में मौजूद scriptId, आपके टारगेट प्रोजेक्ट से मेल खाता हो

इस बारे में और पढ़ें