2015-09-24 10 views
10

में .babel.json मैं नीला वेब एप्लिकेशन पर एक NodeJS एप्लिकेशन चल रहा हूँ और मैं इसे में NPM का उपयोग कर कोलाहल को एकीकृत करने की कोशिश कर रहा हूँ। समस्या यह है कि बेबेलक्यों कोलाहल भंडार USERPROFILE पथ

%USERPROFILE%

नामक फ़ाइल को प्राप्त करने का प्रयास कर रहा है .babel.json, एक फ़ाइल जो मौजूद नहीं है। यह सबसे अधिक संभावना से स्थापित किया गया है: नीला वेब एप्लिकेशन पर

npm install -g babel 

, मैं बिल्कुल भी यह पता लगाने के लिए नहीं कर पा रहे हैं (यहां तक ​​साइट के लिए कुडू में npm install -g babel चलाने के बाद)।

मैंने फ़ाइल को %USERPROFILE% में अपने आप को %USERPROFILE% पर Kudu का उपयोग करके कॉपी किया लेकिन वेब ऐप पर फ़ाइल को पुनरारंभ करने के लिए गायब हो गया।

वहाँ वेब एप्लिकेशन पर कोलाहल काम करने के लिए कोई तरीका है?

अद्यतन

मैं कुछ चीजें छोड़ किया था। त्रुटि तब दिखाई दी जब मैंने babel/register लोड करने का प्रयास किया।

require('babel/register')({ 
    optional: ["es7.asyncFunctions"] 
}); 

और वास्तविक त्रुटि मैं स्ट्रीमिंग का लॉग में देख

Application has thrown an uncaught exception and is terminated: Error: ENOENT, no such file or directory 'D:\local\UserProfile.babel.json' at Object.fs.openSync (fs.js:438:18) at Object.fs.writeFileSync (fs.js:977:15) at save (D:\home\site\wwwroot\node_modules\babel\node_modules\babel-core\lib\api\register\cache.js:35:19) at process._tickCallback (node.js:419:13) at Function.Module.runMain (module.js:499:11) at startup (node.js:119:16) at node.js:906:3

परियोजना Github

+0

'npm install --save-dev babel-core' कमांड को चलाने का प्रयास करें। एनपीएम के लिए विकल्प '-g' विकल्प पैकेज को नोड मॉड्यूल के लिए वैश्विक पथ में स्थापित करेगा। Azure में, पथ संरक्षित है। –

+0

@ बेडेस्कू, इस मुद्दे के कारण मेरे पर्यावरण पर पुनरुत्पादन करना मुश्किल है, क्या आप https://github.com/projectkudu/kudu/wiki/Reporting- पर बताए गए दृष्टिकोण का लाभ उठाकर अपनी वेबसाइट जानकारी साझा कर सकते हैं। आपकी साइट-नाम-बिना पोस्टिंग-सार्वजनिक रूप से? –

उत्तर

14

मुझे यह वही समस्या थी, इसे मेरे अनुप्रयोग सेटिंग्स में पर्यावरण चर BABEL_DISABLE_CACHE=1 सेट करके बेबेल कैश को अक्षम करके हल किया गया। इसके अक्षम कैशिंग

BABEL_CACHE_PATH = any_writable_and_exist_dir/कोलाहल की तुलना में बेहतर https://babeljs.io/docs/usage/require/#environment-variables

+0

इसका परीक्षण किया, बहुत अच्छा काम करता है! धन्यवाद!! – Alex

+0

क्या इससे कोई फर्क पड़ता है यदि आप इसे लेबल या पॉलीफिल की आवश्यकता के पहले या बाद में सेट करते हैं? – es3735746

0

मैं Azure गैलेरी "नोड जे एस खाली वेब एप्लिकेशन" से एक NodeJS ऐप बनाने पर है और Kudu में npm install -g babel कमांड चलाएं। मैंने आपकी समस्या को पुन: उत्पन्न करने का प्रयास किया, लेकिन विफल रहा कि बैबेल फ़ाइल USERbROFILE% पर फ़ाइल .babel.json तक पहुंचने का प्रयास नहीं कर रहा है।

Azure पर, NPM वैश्विक मॉड्यूल पथ में स्थापित किया जाएगा 'डी: \ स्थानीय \ AppData "। जब आप WebApp को पुनरारंभ करते हैं, तो नोड वैश्विक मॉड्यूल हटा दिए जाएंगे।

आप नोड वैश्विक मॉड्यूल का उपयोग करने के है, तो आप एक स्टार्टअप काम के लिए एक नोड वेब भूमिका के लिए नोड मॉड्यूल स्थापित करने के लिए जब वेब भूमिका क्लाउड सेवा में शुरू कॉन्फ़िगर कर सकते हैं। कृपया https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks/ देखें।

आम तौर पर, Azure वेब ऐप्स पर Kudu डीबग कंसोल के "wwwroot" पथ पर npm install <module-name> का उपयोग करके नोड मॉड्यूल स्थापित किया गया।

मैंने "wwwroot" पथ पर बेबेल मॉड्यूल स्थापित करने की कोशिश की और node_module\.bin\babel कमांड चलाएं, और फ़ाइल को सफलतापूर्वक चलाने के लिए कोड require('babel') कोड लिखें। यह बढ़िया काम करता है।

बेस्ट सादर।

+0

उत्तर पीटर के लिए धन्यवाद। मैंने कुछ चीजें छोड़ दीं। मैंने ** अपडेट किया है ** - मेरा प्रश्न संपादित करें। यह मुद्दा वैश्विक मॉड्यूल से बहुत अच्छा नहीं हो सकता है, यह एक धारणा थी जिसे मैंने बनाया था। मैंने एक टेस्ट प्रोजेक्ट बनाया है और गिट तैनाती का उपयोग करके इसे फिर से पेश किया है। मैंने इसे https://github.com/badescuga/testbabelrequire – Alex

+0

@BadescuAlexandru पर अपलोड कर लिया है, मैंने Kudu के भीतर 'wwwroot' पथ में' npm install babel' ('babel-core' नहीं) कमांड का उपयोग कर बेबेल मॉड्यूल स्थापित किया है। मैंने आपकी समस्या को दोबारा शुरू करने की कोशिश की जब नोड रन जेएस स्क्रिप्ट फ़ाइल 'babel/register' को उसी पथ पर' wwwroot' लोड करने के साथ चलाया गया, लेकिन कोई एक्सपेक्शन खुश नहीं हुआ। आपके स्थापित मॉड्यूल के कारण शायद आपकी समस्या 'बेबेल-कोर' है। क्या आप node_modules निर्देशिका देख सकते हैं? –

+0

मैंने जांच की है और मुझे 'बेबेल' मिला है। यह अजीब है कि आपको कोई समस्या नहीं मिल रही है। क्या आप वाकई server.js निष्पादित कर रहे हैं? क्या आप डी: \ local \ UserProfile में किसी भी .babel.json को देखते हैं? ध्यान दें कि तैनाती के लिए, मैंने गिट का उपयोग किया है (इसलिए कुडू ने मेरे लिए संकलन किया) – Alex

3

The error appeared when i tried load babel/register.

पर Cache.js की जांच करें (.. \ node_modules \ कोलाहल \ node_modules \ कोलाहल कोर \ lib \ एपीआई \ रजिस्टर \ Cache.js) अगर वहाँ किसी भी कोलाहल कैश पथ परिभाषा को देखने के लिए, उदाहरण के लिए

process.env.BABEL_CACHE_PATH || _path2["default"].join(_homeOrTmp2["default"], ".babel.json"); 

आप चर इस तरह का लाभ उठाने हैं, तो यह की स्थापना कुंजी और ./cache अन्यथा कोलाहल के साथ कुछ भी नीला पर काम नहीं होगा का मूल्य BABEL_CACHE_PATH एप्लिकेशन होना आवश्यक है। यदि आप node.js. का उपयोग करके Azure वेबसाइट में ऐप सेटिंग्स तक पहुंचने के विवरण जानना चाहते हैं तो कृपया http://blog.syntaxc4.net/post/2012/07/26/accessing-app-settings-configured-in-microsoft-azure-web-sites-using-php-and-node-js.aspx देखें।

क्या आपको कोई और चिंता होनी चाहिए, कृपया हमें बताने में संकोच न करें।

2

आप BABEL_CACHE_PATH

द्वारा .babel.json की दुकान स्थान को बदलने मुझे लगता है कि:

आप कोलाहल कैश के बारे में अधिक पढ़ सकते हैं। cache.json

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