13

इंटरनेट पर देखकर मैं विशेष "index.js" मॉड्यूल फ़ाइल से उलझन में हूं।ईएस 6 (एक्मास्क्रिप्ट 2015) मॉड्यूल: आयात index.js

babelJS + NodeJS या Browserify/Webpack का उपयोग करते हुए मैं import myLib from "./libs" का उपयोग कर एक "libs" निर्देशिका के अंदर एक "index.js" मॉड्यूल आयात कर सकते हैं (यानी। /index या /index.js भाग को छोड़ते हुए)।

क्या ईएस 6 (एक्मास्क्रिप्ट 2015) मॉड्यूल आधिकारिक मानक द्वारा समर्थित "index.js" मॉड्यूल रिज़ॉल्यूशन (युक्त फ़ोल्डर निर्दिष्ट करना) है? या यह सिर्फ "कस्टम" नोडजेएस/कॉमनजेएस पारदर्शी व्यवहार है?

/index को छोड़ना संभव होगा। /index.js सभी ब्राउज़रों में आयात का हिस्सा भी (जब सभी ब्राउज़रों पर मॉड्यूल समर्थित होंगे)?

उत्तर

17

क्या ईएस 6 (एक्मास्क्रिप्ट 2015) मॉड्यूल आधिकारिक मानक द्वारा समर्थित "index.js" मॉड्यूल रिज़ॉल्यूशन (युक्त फ़ोल्डर निर्दिष्ट करना) है?

सं। ES2015 में मॉड्यूल लोडर या मॉड्यूल पहचानकर्ताओं की व्याख्या करने के बारे में कुछ भी शामिल नहीं है।


या यह बस "कस्टम" NodeJS/CommonJS व्यवहार transpiling है?

हां। आप documentation में मॉड्यूल रिज़ॉल्यूशन एल्गोरिदम के बारे में पढ़ सकते हैं। प्रासंगिक हिस्सा:

require(X) from module at path Y 
1. If X is a core module, 
    a. return the core module 
    b. STOP 
2. If X begins with './' or '/' or '../' 
    a. LOAD_AS_FILE(Y + X) 
    b. LOAD_AS_DIRECTORY(Y + X) 
3. LOAD_NODE_MODULES(X, dirname(Y)) 
4. THROW "not found" 

[...] 

LOAD_AS_DIRECTORY(X) 
1. If X/package.json is a file, 
    a. Parse X/package.json, and look for "main" field. 
    b. let M = X + (json main field) 
    c. LOAD_AS_FILE(M) 
2. If X/index.js is a file, load X/index.js as JavaScript text. STOP 
3. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP 
4. If X/index.node is a file, load X/index.node as binary addon. STOP 

यह सभी ब्राउज़रों में आयात की /index|/index.js हिस्सा छोड़ के रूप में अच्छी तरह से (जब मॉड्यूल पर समर्थन किया जाएगा संभव हो जाएगा सभी ब्राउज़रों)?

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

+0

ग्रेट! धन्यवाद, यह जानना अच्छा लगा – Zorgatone

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