firebase - Npm पर फायरबेस के साथ तैनाती में त्रुटि-$ $ RESOURCE_DIR रन लिंट




google-cloud-functions (6)

" npm --prefix $RESOURCE_DIR run lint " से " npm --prefix %RESOURCE_DIR% run lint " में firebase.json में संशोधित करें।

मेरे पास फायरबेस टूल्स (इस tutorial ) की एक नई स्थापना है और मैं अपना पहला फायरबेस फ़ंक्शन अपलोड करने का प्रयास कर रहा हूं। मुझे हैलो-दुनिया के उदाहरण के साथ यह मुद्दा मिलता है कि जब वे फायरबेस इनिट चलाते हैं (केवल इनिट के दौरान फ़ंक्शन CLI सुविधा सेट करता है)

अगर मैं अपने कार्य फ़ोल्डर के साथ firebase.json में $RESOURCE_DIR को प्रतिस्थापित करता हूं तो यह काम करता है, लेकिन निश्चित रूप से यह बुरा अभ्यास है और मैं एक उचित $RESOURCE_DIR प्रतिस्थापन ढूंढना चाहता हूं जो काम करता है।

PS D:\workspace\firebase-functions> firebase deploy

    === Deploying to 'newagent-5221d'...

i  deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path D:\workspace\firebase-functions\$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 'D:\workspace\firebase-functions\$RESOURCE_DIR\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\dtlut\AppData\Roaming\npm-cache\_logs\2018-01-19T15_57_22_990Z-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code4294963238

firebase.json फ़ाइल का पता लगाएं और फिर इन पंक्तियों को बदलें

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

सेवा मेरे

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

यह काम करेंगे


आप बस इस तरह से अपनी फ़ायरबेस फ़ाइल बना सकते हैं:

{
  "functions": {
    "predeploy": [
      "npm --prefix ./functions/ run lint",
      "npm --prefix ./functions/ run build"
    ]
  }
}

मैं जो कर रहा हूं वह $ RESOURCE_DIR को मेरे लिए अच्छा काम करने वाले फ़ंक्शन फ़ोल्डर के हार्ड कोडित पथ के साथ बदल रहा है


यह आपके क्लाउड फ़ंक्शंस को लिंट करना चाहता है, अर्थात यह आपके कोड को स्पष्ट त्रुटियों के लिए जाँच करेगा जैसे संकलित भाषा संकलन समय पर त्रुटियों को फेंक देगी।

यह आवश्यक नहीं है, आप हमेशा फायरबेस में जा कर इसे हटा सकते हैं। जेसन और फ़ंक्शंस को अपडेट कर सकते हैं। एक खाली सरणी होने के लिए।

  "functions": {
    "predeploy": [],
    "source": "functions" 
  }

"लाइनिंग" क्या है?


का सारांश

  1. ESLint को स्थानीय रूप से अधिष्ठापित करें "devD dependencies" को package.json में जोड़ने के लिए। चलाएँ:

     `npm install eslint --save-dev`
    
  2. ऊपर बताए अनुसार विंडोज के लिए समाधान। बदलें firebase.json :

     `npm --prefix $RESOURCE_DIR run lint` to `npm --prefix %RESOURCE_DIR% run lint`
    
  3. वैकल्पिक रूप से, निम्नलिखित को package.json में जोड़ें:

     "scripts": { "lint": "eslint"} or "scripts": { "lint": "eslint.js"}
    

यह समस्या समाधान के बिना समस्या को हल करना चाहिए

npm install -g git://github.com/firebase/firebase-tools#master

कृपया इस स्थापना को फिर से उर प्रोजेक्ट फ़ोल्डर में आज़माएं, इससे समस्या का समाधान होना चाहिए







google-cloud-functions