Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   nodejs и destructuring assignment (https://javascript.ru/forum/node-js-io-js/61539-nodejs-i-destructuring-assignment.html)

torsar 22.02.2016 21:32

nodejs и destructuring assignment
 
"use strict";

let [, ,p1,p2] = ["Юлий", "Цезарь", "Император", "Рима"];
console.log(p1);
console.log(p2);


Нода выдает ошибку:
Unexpected token
let [

Юзаю последнюю версию ноды.
Я так понимаю не поддерживает сабж.

Пробовал:
babel my.js -o out.js

out.js почему то идентичен my.js,
только кое где пробелы удалены :(

что я делаю не так?

зы в лисе код с destructuring assignment работает

yazonnile 22.02.2016 21:57

точно бабел правильно пробовали?

https://babeljs.io/repl/#?experimental=false&evaluate=false&loose=false&sp ec=false&code=let%20%5B%2C%20%2Cp1%2Cp2%5D%20%3D%2 0%5B%22%D0%AE%D0%BB%D0%B8%D0%B9%22%2C%20%22%D0%A6% D0%B5%D0%B7%D0%B0%D1%80%D1%8C%22%2C%20%22%D0%98%D0 %BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%22%2 C%20%22%D0%A0%D0%B8%D0%BC%D0%B0%22%5D%3B%0D%0A

torsar 23.02.2016 10:44

Исходный код:

"use strict";

let  [ , ,p1,p2] = ["Юлий", "Цезарь", "Император", "Рима"];
console.log(p1);
console.log(p2);


Выполняю команду:
babel dest-node-4forum.js

В консоль выводится:

"use strict";

let [,, p1, p2] = ["Юлий", "Цезарь", "Император", "Рима"];
console.log(p1);
console.log(p2);


Те то же самое.

Что я могу делать не так, ни пойму :(

Erolast 23.02.2016 13:25

Цитата:

Юзаю последнюю версию ноды.
Я так понимаю не поддерживает сабж.
Нода еще не поддерживает деструктуризацию.

Цитата:

Пробовал:
babel my.js -o out.js

out.js почему то идентичен my.js
А бабель настроен хоть? В шестой версии его переделали под универсальную платформу для компиляции диалектов ES, и из коробки он вообще ничего не делает. Нужно сперва подключить соответствующие плагины (либо пресет - это уже подобранный набор плагинов).

http://babeljs.io/docs/plugins/ - общая справка.
http://babeljs.io/docs/plugins/preset-es2015/ - пресет, реализующий компиляцию всех фич ES6.
https://www.npmjs.com/package/babel-preset-es2015-node5 - пресет, реализующий компиляцию только тех фич ES6, которые еще не поддерживаются нодой.

torsar 23.02.2016 14:18

Спасибо, помогли :).
Еще вопрос:
если я инсталю пресет в директорию со своими скриптами,
все работает.
Но если инсталю пресет глобально
(npm c ключом -g),
то babel пишет не найду пресет

Как сконфигурить так, чтоб находились пресеты,
установленные глобально?

Erolast 24.02.2016 09:28

Цитата:

инсталю пресет глобально
А зачем? При таком подходе запаришься проект на другую машину переносить: придется заново подбирать все модули.
Сами разработчики советуют устанавливать все зависимости локально.

torsar 24.07.2018 18:53

Нужен учебник или статьи по babeljs на русском.

SuperZen 25.07.2018 12:32

$ node --version
v10.6.0

let [, , p1, p2] = ["one", "two", "three", "four"];
console.log(p1);

в консоле: three

без бабеля

torsar 27.07.2018 10:04

Нужен учебник или статьи по babeljs на русском.


Часовой пояс GMT +3, время: 12:34.