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
ზემოთ