windows क्लाउड फ़ंक्शंस विंडोज पर एक प्रकार का वृक्ष के दौरान त्रुटि को तैनात करता है: "सक्षम ENOENT: ऐसी कोई फ़ाइल या निर्देशिका नहीं"




firebase google-cloud-functions (8)

फायरबेस फ़ंक्शन के बाद गाइड शुरू करना और एक साथ मिलने के लिए एक बार देखने में आसान त्रुटि मिल रही है:

firebase deploy --only functions

i  deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path C:\Users\Beat\leginformant\$RESOURCE_DIR\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 
'C:\Users\Beat\leginformant\$RESOURCE_DIR\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

Package.json फ़ाइल मेरे प्रोजेक्ट / फ़ंक्शंस / package.json में ट्यूटोरियल शो के रूप में मौजूद है। सफलता के साथ RESOURCE_DIR env को बदलने या प्रिंट करने की कोशिश की है। यह मानते हुए कि इसे एनपीएम शेल पर्यावरण के अंदर स्कोप किया जाएगा।

एनपीएम संस्करण: 5.6.0

नोड संस्करण: 8.9.0


Ubuntu के लिए, आपको firebase.json से पहले $ नोटिस, firebase.json को बदलने की जरूरत है

{
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

विंडोज 10 के लिए आपको RESOURCE_DIR से पहले और बाद में firebase.json को बदलने की जरूरत है

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint",
      "npm --prefix \"%RESOURCE_DIR%\" run build"
    ]
  }
}

आपको यहाँ दिखाया गया है, आपको firebase.json फ़ाइल को बदलना होगा

"npm --prefix functions run lint"
"npm --prefix functions run build"

अन्य सुझावों के अलावा, यदि आप प्रीफ़्लाइट / प्रीपेयेल कमांड को निम्न से बदलते हैं:

"npm --prefix \"$RESOURCE_DIR\" run lint", OR
"npm --prefix \"%RESOURCE_DIR%\" run lint"

सेवा मेरे

"npm --prefix ./functions run lint"

मुद्दा तय हो गया लगता है। यह भी विंडोज और लिनक्स दोनों के लिए इसे हल करता है।

अधिक विवरण देखने के लिए, कृपया इस उत्तर को देखें (और आगे का धागा): https://github.com/firebase/firebase-tools/issues/610#issuecomment-360147507


विंडोज़ में, सीएलआई में फायरबेस प्रोजेक्ट का इनिशियलाइज़ेशन करते हुए, { "functions": { "predeploy": [ "npm --prefix \"%RESOURCE_DIR%\" run lint" ], "source": "functions" } } फ़ाइल का उपयोग करके, कोड को नीचे दिए अनुसार { "functions": { "predeploy": [ "npm --prefix \"%RESOURCE_DIR%\" run lint" ], "source": "functions" } } इस परिवर्तन के बाद, firebase deploy --only functions प्रयास करें - firebase deploy --only functions कमांड।


आप अपनी firebase.json फ़ाइल को एक्सेस करके इसे ठीक कर सकते हैं और RESOURCE_DIR युक्त इस लाइन को हटा सकते हैं।


निम्नलिखित बदलें:

npm --prefix \"$RESOURCE_DIR\" run lint

सेवा मेरे

npm --prefix \"%RESOURCE_DIR%\" run lint

मुख्य संरचना में firebase.json फ़ाइल में

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint"
    ],
    "source": "functions"
  }
}

यह कम से कम 3.17.3 के माध्यम से Firebase CLI 3.17.0 के साथ एक ज्ञात समस्या है, लेकिन केवल विंडोज पर। आप अपने प्रोजेक्ट के रूट पर firebase.json को एडिट करके $RESOURCE_DIR जगह %RESOURCE_DIR% के साथ npm कमांड्स में एडिट करके अपनी मशीन पर इसे ठीक कर सकते हैं। पूर्व एक पर्यावरण चर का उपयोग करने के लिए यूनिक्स सिंटैक्स तरीका है, जबकि बाद वाला विंडोज कमांड शेल सिंटैक्स है। चूंकि आप विंडोज का उपयोग कर रहे हैं, इसलिए आपको विंडोज सिंटैक्स का उपयोग करने की आवश्यकता है।

टीम आपके द्वारा उपयोग की जाने वाली कॉन्फ़िग फ़ाइलों में परिवर्तन करने से रोकने के तरीकों पर गौर कर रही है, क्योंकि यह उन टीमों के लिए वास्तव में सुविधाजनक नहीं है जो एक ही फ़ाइल को आगे और पीछे बदलते रहने के लिए प्लेटफ़ॉर्म पर काम करती हैं।

EDIT: यह समस्या CLI संस्करण 3.17.5 के साथ बनाई गई परियोजनाओं के साथ तय की जानी चाहिए।


दौड़ते समय

firebase init functions

मैं इस कॉन्फ़िगरेशन का उपयोग करता हूं

? What language would you like to use to write Cloud Functions? JavaScript
//TypeScript doesn't work
? Do you want to use ESLint to catch probable bugs and enforce style? Yes
//If you don't you will get a missing file lint
? File functions/package.json already exists. Overwrite? Yes
? Do you want to install dependencies with npm now? Yes
//Why not

फिर अगर खिड़कियों का उपयोग करें

Firebase.json में $ RESOURCE_DIR को% RESOURCE_DIR% से बदलें







firebase-cli