2014-04-04 9 views
6

में एनपीएम पैकेज को संगत करें मैं Swig (टेम्पलेट भाषा) Parse Cloud Code पर एक्सप्रेस के साथ काम करने की कोशिश कर रहा हूं। पार्स क्लाउड कोड एक नोड/एक्सप्रेस होस्ट है जो एनपीएम की अनुमति नहीं देता है। हास्यास्पद, मुझे पता है। मैं अभी भी बाहरी फाइलों को कोड में जरूरी बयानों के साथ लोड कर सकता हूं, इसलिए मुझे लगता है कि उम्मीद है कि मैं यह काम कर सकता हूं।एक जेएस फ़ाइल

var swig = require("./cloud/swig.js"); 

टिप्पण लायक पार्स टूट जाता है कि सामान्य वक्तव्यों की आवश्यकता होती है:

तो मेरे सवाल का कैसे मैं एक ही जे एस फ़ाइल में पूरे पूरे बड़ा घूँट पैकेज है कि मैं इतनी तरह मेरे पार्स एक्सप्रेस ऐप्लिकेशन से शामिल कर सकते हैं मिलता है है कि एनपीएम पैकेज के रूप में node_modules फ़ोल्डर में प्रत्येक फ़ाइल को cloud में अपने प्रत्येक पथ में संशोधित किए बिना काम नहीं करता है (यही कारण है कि मेरे उपरोक्त पथ में cloud है)। पार्स भी बहुत छोटी फाइल अपलोड करते समय चोक करता है। इस मंच पर Concatenation की जरूरत है।

मैं घंटों के लिए browserify के साथ खेल की कोशिश की है, लेकिन कुछ भी का कोई संयोजन मैं क्या करता है बड़ा घूँट वस्तु को उजागर करता है जब मैं बयान की आवश्यकता के साथ browserified फ़ाइल लोड। मुझे लगता है कि यह सही विकल्प हो सकता है क्योंकि ब्राउज़र फ़ाइल में स्विग की सभी फाइलें शामिल हैं, लेकिन यह उन्हें बाहरी रूप से बेनकाब नहीं करती है।

मेरा प्रश्न या तो ब्राउज़र में किया जा सकता है, और यदि हां, तो कैसे? या एक एनपीएम रेपो को एक फ़ाइल में जोड़ने के लिए एक और तरीका है ताकि इसे इस मंच से अधिक आसानी से शामिल किया जा सके?

बहुत बहुत धन्यवाद।

+0

शायद तुम बड़ा घूँट के ब्राउज़र संस्करण का उपयोग करने की कोशिश कर सकते हैं। [swig.js] (http://paularmstrong.github.io/swig/js/swig.js), [swig.min.js] (http://paularmstrong.github.io/swig/js/swig.min .js), और [दस्तावेज़] (http://paularmstrong.github.io/swig/docs/browser/)। – bnuhero

+0

क्या आपने [index.js] (https://github.com/paularmstrong/swig/blob/master/index.js) का उपयोग अपने बीएफई प्रवेश बिंदु के रूप में करने का प्रयास किया था? आउटपुट फ़ाइल - आपको अपने पारसी क्लाउड प्रोजेक्ट में इसकी आवश्यकता होनी चाहिए। – Zasz

+0

होस्टिंग बदलो? या यदि यह किसी भी कारण से कोई विकल्प नहीं है, तो ज़िप/अनजिप करें? browserify चाल नहीं करेगा - आपको फ़ोल्डर की संरचना की आवश्यकता है, एक फ़ाइल नहीं। – esp

उत्तर

0

ब्राउज़रify नौकरी के लिए सही उपकरण नहीं है।

जैसा कि नाम का तात्पर्य है, ब्राउज़र का उपयोग उन फ़ाइलों को उत्पन्न करने के लिए किया जाता है जिन्हें आप ब्राउज़र में निष्पादित करना चाहते हैं। यह एक एंट्रीपॉइंट से आवश्यकता कॉल चलाता है (यानी कुछ जेएस फाइल जो आप ब्राउज़र को पास करते हैं) और उन ऑब्जेक्ट्स में बंडल करते हैं जो मॉड्यूल को लपेटने के कार्यों में उनके नामों को मैप करते हैं। यह require फ़ंक्शन से पहले से मौजूद होने की अपेक्षा नहीं करता है और इसका कोई उपयोग नहीं करता है। यह require के अपने कार्यान्वयन को प्रतिस्थापित करता है जो केवल एक चीज करता है: बंडल से नाम देखें, मिलान करने वाले फ़ंक्शन को निष्पादित करें और exports लौटाएं।

आप सैद्धांतिक रूप से require ब्राउज़र ब्राउज़र बंडल कर सकते हैं, लेकिन यह केवल एक खाली वस्तु वापस करेगा (हालांकि यह ग्लोबल्स के साथ गड़बड़ हो सकता है)। और सभी संभावनाओं में यह तोड़ सकता है क्योंकि बंडल मॉड्यूल सोचते हैं कि उन्हें ब्राउज़र में निष्पादित किया जा रहा है। यह कोई अच्छा नहीं करेगा।

यदि आप मेजबान के साथ रहना चाहते हैं तो एकमात्र विकल्प विकल्प है, अपने स्थानीय प्रोजेक्ट फ़ोल्डर से node_modules फ़ोल्डर पर प्रतिलिपि बनाना है। यह काम नहीं कर सकता है यदि आपका कंप्यूटर और सर्वर 100% संगत नहीं है (उदाहरण के लिए 32-बिट बनाम 64-बिट, डेबियन बनाम रेडहाट, ओएसएक्स/विंडोज बनाम लिनक्स) लेकिन यह अधिकतर आपकी सटीक निर्भरताओं पर निर्भर करता है (मूल रूप से जो कुछ भी बनाया गया है node-gyp एक समस्या हो सकती है)।

फ़ोल्डर स्वचालित रूप से कॉल पर निर्भरता को देखते समय node_modules फ़ोल्डर का उपयोग करता है। यदि आप किसी भी तरह से node_modules सर्वर पर सही सामग्री वाले फ़ोल्डर प्राप्त कर सकते हैं, require("foo")node_modules में एक मॉड्यूल foo शामिल होगा।के आसपास काम तो एक के रूप में,

https://parse.com/questions/using-npm-modules-in-cloud-code

लेकिन यदि आप केवल बड़ा घूँट उपयोग करने के लिए कोशिश कर रहे हैं, तो आप:

0

अंत में, आप पार्स बादल कोड में NPM मॉड्यूल का उपयोग करने की कोशिश कर रहे और वर्तमान में यह संभव नहीं है इसके बजाय underscore template का उपयोग करने पर विचार कर सकते हैं। पहले से ही पार्स शामिल रेखांकित:

https://parse.com/docs/cloud_modules_guide#underscore

+0

आप अपना उत्तर पोस्ट करने से पहले लेखक के प्रश्न को पढ़ने में असफल रहे, क्योंकि उन्होंने नोट किया कि वह पार्स क्लाउड के भीतर एनपीएम का उपयोग नहीं कर सकते हैं। वह एनपीएम मॉड्यूल का उपयोग करने की कोशिश नहीं कर रहा है। वह एक एनपीएम मॉड्यूल को एक फ़ाइल में संयोजित करने का प्रयास कर रहा है ताकि उसे इसकी आवश्यकता हो। फाइल की आवश्यकता है काम करता है। असमर्थ रहे हैं। – FueledPublishing

संबंधित मुद्दे