ECMAScript 2015 (ES6) და მის ფარგლებს მიღმა
Node.js შექმნილია V8-ის უახლეს ვერსიებზე დაყრდნობით. ძრავის (V8) უახლესი ვერსიების პარალელურად [Node.js-ის] მუდმივი განახლებების საფუძველზე Node.js დეველოპერებს რეალურ დროში, გარანტირებულად ეძლევათ წვდომა JavaScript ECMA-262 სპეციფიკაციის ახალ მახასიათებლებზე. გარდა ამისა, მუდმივად უმჯობესდება წარმადობა და სტაბილურობა.
ECMAScript 2015 (ES6) მახასიათებლები სამ ჯგუფად იყოფა: მიწოდებული (shipping), მზა (staged) და მოქმედი (in progress):
- ყოველი მიწოდებული (shipping) მახასიათებელი, რომელსაც V8 სტაბილურად მიიჩნევს, Node.js-ზე ნაგულისხმევად არის გააქტიურებული და არ მოითხოვს რაიმე სახის [დამატებით] მითითებას გაშვების მომენტში.
- მზა (staged) მახასიათებლები, ანუ თითქმის დასრულებული მახასიათებლები, რომლებიც V8-ის გუნდის მიერ არ არის მიჩნეული სტაბილურად, გაშვების მომენტში მოითხოვს დამატებით არგუმენტს:
--harmony
. - მოქმედი (in progress) მახასიათებლების გააქტიურება შესაძლებელია ინდივიდუალურად, მათთვის შესაბამისი თანაზომიერების (harmony) არგუმენტით, თუმცა ტესტირების გარდა რაიმე სხვა მიზნით ამის გაკეთება უკიდურესად არასასურველია. შენიშვნა: ეს არგუმენტები (flags) შემოღებულია V8-ის მიერ და შესაძლოა შეიცვალოს ყოველგვარი წინასწარი გაფრთხილების გარეშე.
Node.js-ის რომელ ვერსიას რომელი მახასიათებლები მოყვება ნაგულისხმევად?
ვებსაიტი node.green kangax-ის თავსებადობის ცხრილზე დაყრდნობით გვაწვდის შესანიშნავ მიმოხილვას Node.js-ის სხვადასხვა ვერსიაში მხარდაჭერილი ECMAScript-ის მახასიათებლების შესახებ.
რომელი მახასიათებლებია მოქმედი?
V8 ძრავას მუდმივად ემატება ახალი მახასიათებლები. ზოგადად, ველით, რომ ისინი გამოჩნდებიან Node.js-ის მომავალ გამოშვებაში, თუმცა ზუსტი თარიღი უცნობია.
თქვენ შეგიძლიათ იხილოთ Node.js-ის თითოეულ გამოშვებაში ხელმისაწვდომი მოქმედი (in progress) მახასიათებლების სია --v8-options
არგუმენტის გამოყენებით. გთხოვთ გაითვალისწინოთ, რომ ესენი V8-ის დაუმთავრებელი და პოტენციურად გაუმართავი მახასიათებლებია, ასე რომ, მათი გამოყენება რისკის შემცველია:
node --v8-options | grep "in progress"
ჩემი ინფრასტრუქტურა ისეა მოწყობილი, რომ სარგებლობს --harmony არგუმენტით. უნდა წავშალო?
--harmony
არგუმენტის მიმდინარე ქცევა Node.js-ზე მხოლოდ მზა (staged) მახასიათებელთა გააქტიურებაში გამოიხატება. ბოლოს და ბოლოს, ამჟამად იგი წარმოადგენს --es_staging
-ის სინონიმს. როგორც ზემოთ აღინიშნა, ესენი (მზა მახასიათებლები) არის დასრულებული მახასიათებლები, რომლებიც ჯერჯერობით არ არის მიჩნეული სტაბილურად. თუკი თქვენთვის მნიშვნელოვანია უსაფრთხოება, განსაკუთრებით საწარმოო გარემოში, მოაშორეთ ეს პარამეტრი მანამ, სანამ [თქვენთვის] საჭირო მახასიათებლები არ გახდება „ნაგულისხმევი“ V8-ზე და, მაშასადამე, Node.js-ზე. თუ ამას არ იზამთ, მზად უნდა იყოთ იმისათვის, რომ Node.js-ის შემდგომი განახლებები (თუკი V8 შეცვლის სემანტიკას, რათა უფრო მჭიდროდ მიჰყვეს სტანდარტებს) გამოიწვევს თქვენი კოდის მუშაობის დარღვევას.
როგორ გავარკვიო, V8-ის რომელი ვერსია მოყვება Node.js-ის კონკრეტულ ვერსიას?
Node.js უზრუნველყოფს მარტივ გზას, — გლობალური process
ობიექტის მეშვეობით, — დაქვემდებარებათა (dependencies) და შესაბამის ვერსიათა, — რომლებიც მოყვება [Node.js-ის] კონკრეტულ გამოშვებას, — სიის [ეკრანზე] გამოსატანად. V8 ძრავის შემთხვევაში, მისი ვერსიის გასაგებად, ტერმინალში გაუშვით შემდეგი ბრძანება:
node -p process.versions.v8