2016-02-11 19 views
9

ES6 में आयात निर्यात का उपयोग कर, मैं त्रुटि नीचे हो रही है:ES2015 मॉड्यूल आयात और निर्यात सिंटेक्स त्रुटि

SyntaxError: export declarations may only appear at top level

मैं सर्फ़ इसे ठीक करने का पता लगाने के लिए है, लेकिन im करने में असमर्थ। क्या कोई इस बारे में समझा सकता है। मैं ईएस 6 के लिए नया, खासकर आयात और निर्यात करने के लिए। (मैं इस तरह के सामान के लिए पूरी तरह से StealJS का उपयोग कर रहा था) धन्यवाद!

js फ़ाइलें हैं:

app.js

import { cube, cubeRoot } from 'functions'; 

console.log(cube(4)); 
console.log(cubeRoot(125)); 

functions.js

// functions.js 

function cube(a) { 
    return a * a * a; 
} 

function cubeRoot(a) { 
    return Math.cbrt(a); 
} 

export { cube, cubeRoot} 
+3

'फ़ंक्शन' फ़ाइल या मॉड्यूल है? शायद आपको 'import {...} से' import {...} की आवश्यकता है? –

+0

क्या आप सुनिश्चित हैं कि आपके पास कहीं कुछ बेजोड़ उद्घाटन ब्रेस नहीं है? क्या यह आपका सटीक कोड है? क्या आप हमें सटीक सेटअप दिखा सकते हैं और आप इसे कैसे पार कर रहे हैं? – Bergi

+0

क्या यह संपूर्ण त्रुटि संदेश है? किसी भी लाइन नंबर या तो मिला? – Bergi

उत्तर

5

अद्यतन गर्मियों 2017:

http://caniuse.com/#search=modules, नए समर्थन देखें, शायद बदलने की जरूरत है सेटिंग्स।

अब चीजें कम अस्पष्ट हैं। मॉड्यूल कार्य करने के लिए आपको ब्राउज़र को बताएं कि यह एक मॉड्यूल (दूसरा स्क्रिप्ट) है। पहला तरीका निहित है, एक आयातित मॉड्यूल हमेशा एक मॉड्यूल है। दूसरा तरीका, आदि प्रकार मॉड्यूल के साथ है <script src="anymodule.js" type="module"></script>

यकीन आयात और निर्यात शीर्ष स्तर पर ही कर रहे हैं, एक ब्लॉक के अंदर, एक बयान करता है, तो, एक पाश के अंदर नहीं अंदर नहीं नहीं बनाने

इसके अलावा यह सुनिश्चित कर लें पूर्ण पथ (.js सहित) प्रदान करें, इसे ./ या ../ से शुरू करना चाहिए। फ़ाइलों को मानना ​​एक ही फ़ोल्डर में है import { cube, cubeRoot } from './functions.js';

eval मॉड्यूल स्ट्रिंग पर काम नहीं करेगा।

पुराने नीचे जवाब:

ES2015 मॉड्यूल आयात और निर्यात वाक्य रचना समय मैं इस सवाल का जवाब (04/2016) लिखने पर किसी भी ब्राउज़र द्वारा समर्थित नहीं है। त्रुटि संदेश अग्रणी मिस है क्योंकि इसका तात्पर्य है कि वाक्यविन्यास समर्थित है, लेकिन यह बिल्कुल समर्थित नहीं है। पहले ध्यान दें यहाँ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

मॉड्यूल लोडर के लिए विनिर्देश अभी भी प्रगति में एक काम है, क्योंकि कारण है देखें। https://whatwg.github.io/loader/#status

देखें हालांकि वे polyfill करने के लिए या कोलाहल की तरह स्वचालित रूप से इस वाक्य रचना transpile के उपकरण हैं।

+0

ब्राउज़र में एक अनुपलब्ध मॉड्यूल सुविधा से ओपी रिपोर्ट त्रुटि संदेश नहीं आएगी। –

+0

त्रुटि वास्तव में –

+2

अग्रणी है जो मैं कह रहा हूं कि यदि कोई ब्राउज़र मॉड्यूल का समर्थन नहीं करता है, तो वह उस संदेश को बिल्कुल उत्पन्न नहीं करेगा। यह 'अप्रत्याशित टोकन आयात' जैसे संदेश उत्पन्न करेगा। इसलिए, ओपी की समस्या कहीं और है। –

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