खोज…


परिचय

ES6, ECMAScript 6 या ES2015 जावास्क्रिप्ट के लिए नवीनतम विनिर्देश है जो भाषा के लिए कुछ संश्लिष्ट चीनी का परिचय देता है। यह भाषा के लिए एक बड़ा अद्यतन है और बहुत सी नई विशेषताओं का परिचय देता है

नोड और ईएस 6 पर अधिक विवरण उनकी साइट https://nodejs.org/en/docs/es6/ पर देखे जा सकते हैं।

नोड ईएस 6 समर्थन और बेबेल के साथ एक परियोजना का निर्माण

संपूर्ण ES6 कल्पना अभी तक पूरी तरह से लागू नहीं हुई है, इसलिए आप केवल कुछ नई सुविधाओं का उपयोग कर पाएंगे। आप http://node.green/ पर वर्तमान समर्थित ES6 सुविधाओं की सूची देख सकते हैं

NodeJS v6 के बाद से बहुत अच्छा समर्थन मिला है। इसलिए यदि आप NodeJS v6 या इसके बाद के संस्करण का उपयोग कर रहे हैं तो आप ES6 का उपयोग करके आनंद ले सकते हैं। हालाँकि, आप कुछ अप्रकाशित सुविधाओं का उपयोग करना चाह सकते हैं और कुछ परे से। इसके लिए आपको एक ट्रांसपिलर का उपयोग करना होगा

ES6 सुविधाओं और अधिक के सभी का उपयोग करने के लिए, रन टाइम पर एक ट्रांसपिलर चलाना और निर्माण करना संभव है। जावास्क्रिप्ट के लिए सबसे लोकप्रिय ट्रांसपिलर को बैबेल कहा जाता है

बैबेल आपको ईएस 6 विनिर्देशन से सभी सुविधाओं का उपयोग करने की अनुमति देता है और कुछ अतिरिक्त-न-इन-स्पेक विशेषताओं के साथ 'चरण -०' जैसे कि import thing from 'thing बजाय var thing = require('thing')

यदि हम एक ऐसी परियोजना बनाना चाहते हैं, जहाँ हम 'स्टेज -0' जैसी सुविधाओं का उपयोग करते हैं, तो आयात करने के लिए हमें एक ट्रांसलेटर के रूप में बैबेल को जोड़ना होगा। आप प्रतिक्रिया और Vue और अन्य सामान्यJS आधारित पैटर्न का उपयोग करके परियोजनाएं देखेंगे।

एक नया नोड प्रोजेक्ट बनाएं

mkdir my-es6-app
cd my-es6-app
npm init

ईएस 6 प्रीसेट और स्टेज -0 को स्थापित करें

npm install --save-dev babel-preset-es2015 babel-preset-stage-2 babel-cli babel-register

server.js नामक एक नई फ़ाइल बनाएँ और एक मूल HTTP सर्वर जोड़ें।

import http from 'http'

http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'})
  res.end('Hello World\n')
}).listen(3000, '127.0.0.1')

console.log('Server running at http://127.0.0.1:3000/')

ध्यान दें कि हम import http from 'http' एक import http from 'http' उपयोग करते हैं यह एक चरण -० की सुविधा है और अगर यह काम करता है तो इसका मतलब है कि हमें ट्रांसपिलर सही तरीके से काम कर रहा है।

यदि आप node server.js चलाते हैं तो यह पता नहीं चलेगा कि आयात को कैसे संभालना है।

अपनी निर्देशिका के मूल में एक .babelrc फ़ाइल बनाना और निम्नलिखित सेटिंग्स जोड़ना

{
  "presets": ["es2015", "stage-2"],
  "plugins": []
}

अब आप node src/index.js --exec babel-node साथ सर्वर चला सकते हैं

किसी प्रोडक्शन ऐप पर रनटाइम पर ट्रांसपॉयलर चलाना अच्छा नहीं है। हालाँकि हम अपने पैकेज में कुछ स्क्रिप्ट्स को लागू कर सकते हैं। साथ ही साथ काम करना आसान बनाएं।

"scripts": {
    "start": "node dist/index.js",
    "dev": "babel-node src/index.js",
    "build": "babel src -d dist",
    "postinstall": "npm run build"
  },

पर इसके बाद के संस्करण इच्छा npm install transpiled कोड के निर्माण के लिए जिले निर्देशिका अनुमति देते हैं npm start हमारे उत्पादन ऐप्स के लिए transpiled कोड का उपयोग करें।

npm run dev सर्वर और बेबेल रनटाइम को बूट करेगा जो स्थानीय स्तर पर किसी प्रोजेक्ट पर काम करते समय ठीक और पसंदीदा है।

एक और जाने के बाद आप nodemon npm स्थापित कर सकते हैं npm install nodemon --save-dev को परिवर्तनों को देखने के लिए स्थापित करें और फिर नोड ऐप को रिबूट करें।

यह वास्तव में कोलाहल और NodeJS के साथ काम करने की गति बढ़ाता है। आप package.json में सिर्फ नोड का उपयोग करने के लिए "देव" स्क्रिप्ट को अपडेट करें

"dev": "nodemon src/index.js --exec babel-node",

अपने NodeJS ऐप पर JS es6 का उपयोग करें

JS es6 (जिसे es2015 के रूप में भी जाना जाता है), JS भाषा के लिए नई सुविधाओं का एक सेट है, जिसका उद्देश्य OOP का उपयोग करते समय या आधुनिक विकास कार्यों का सामना करते समय इसे और अधिक सहज बनाना है।

आवश्यक शर्तें:

  1. Http://es6-features.org पर नई es6 सुविधाओं की जाँच करें - यदि आप वास्तव में इसे अपने अगले NodeJS ऐप पर उपयोग करने का इरादा रखते हैं, तो यह आपको स्पष्ट कर सकता है

  2. Http://node.green पर अपने नोड संस्करण की संगतता स्तर की जाँच करें

  3. अगर सब ठीक है - चलो कोड!

यहाँ जेएस es6 के साथ एक सरल hello world ऐप का एक बहुत ही छोटा नमूना है

'use strict'

class Program
{
    constructor()
    {
        this.message = 'hello es6 :)';
    }

    print()
    {
        setTimeout(() =>
        {
            console.log(this.message);
            
            this.print();

        }, Math.random() * 1000);
    }
}

new Program().print();

आप इस प्रोग्राम को चला सकते हैं और देख सकते हैं कि यह एक ही संदेश को बार-बार कैसे प्रिंट करता है।

अब .. इसे लाइन से नीचे तोड़ दें:

'use strict'

यदि आप js es6 का उपयोग करने का इरादा रखते हैं तो यह लाइन वास्तव में आवश्यक है। strict मोड, जानबूझकर, सामान्य कोड से अलग शब्दार्थ है (कृपया एमडीएन पर इसके बारे में अधिक पढ़ें - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode)

class Program

अविश्वसनीय - एक class कीवर्ड! बस एक त्वरित संदर्भ के लिए - es6 से पहले js में एक वर्ग को परिभाषित करने का एकमात्र तरीका है ... function कीवर्ड!

function MyClass() // class definition
{

}

var myClassObject = new MyClass(); // generating a new object with a type of MyClass

OOP का उपयोग करते समय, एक वर्ग एक बहुत ही मौलिक क्षमता होती है जो डेवलपर को सिस्टम के एक विशिष्ट हिस्से का प्रतिनिधित्व करने में सहायता करती है (कोड को बड़ा होने पर कोड को तोड़ना महत्वपूर्ण होता है .. उदाहरण के लिए: सर्वर-साइड कोड लिखते समय)

constructor()
{
    this.message = 'hello es6 :)';
}

आप स्वीकार करते हैं - यह बहुत सहज है! यह मेरी कक्षा की c'tor है - यह विशिष्ट "फ़ंक्शन" हर बार इस विशेष वर्ग (हमारे कार्यक्रम में - केवल एक बार) से एक ऑब्जेक्ट बनने पर होगा

print()
{
    setTimeout(() => // this is an 'arrow' function
    {
        console.log(this.message);
        
        this.print(); // here we call the 'print' method from the class template itself (a recursion in this particular case)

    }, Math.random() * 1000);
}

क्योंकि प्रिंट को वर्ग के दायरे में परिभाषित किया जाता है - यह वास्तव में एक विधि है - जिसे या तो कक्षा की वस्तु से या कक्षा के भीतर से ही लागू किया जा सकता है!

इसलिए .. अब तक हमने अपनी कक्षा को परिभाषित किया है .. इसका उपयोग करने का समय:

new Program().print();

जो वास्तव में बराबर है:

var prog = new Program(); // define a new object of type 'Program'

prog.print(); // use the program to print itself

निष्कर्ष में: JS es6 आपके कोड को सरल बना सकता है - इसे और अधिक सहज और समझने में आसान बनाता है (JS के पिछले संस्करण की तुलना में) .. आप अपने मौजूदा कोड को फिर से लिखने और अपने लिए अंतर देखने का प्रयास कर सकते हैं।

का आनंद लें :)



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow