Я экспериментировал с использованием Node версии 6.2.1 с некоторым кодом. Были планы перенести большинство кодов, ориентированных на гипер-обратный вызов, на что-то, что выглядит чище и, возможно, работает лучше.
Понятия не имею, почему терминал выдает ошибку, когда я пытаюсь выполнить код узла.
helloz.js
(async function testingAsyncAwait() {
await console.log("Print me!");
})();
ЖУРНАЛЫ РЕГИСТРАЦИИ-
BOZZMOB-M-T0HZ:rest bozzmob$ node helloz.js
/Users/bozzmob/Documents/work/nextgennms/rest/helloz.js:1
(function (exports, require, module, __filename, __dirname) { (async function testingAsyncAwait() {
^^^^^^^^
SyntaxError: Unexpected token function
at Object.exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:513:28)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Function.Module.runMain (module.js:575:10)
at startup (node.js:160:18)
at node.js:456:3
BOZZMOB-M-T0HZ:rest bozzmob$ node -v
v6.2.1
Что мне не хватает? Пожалуйста, пролей свет на то же самое.
Обновление 1:
Я попытался использовать Babel, как предложил Квентин, но все еще получаю следующую ошибку.
Обновленный код
require("babel-core/register");
require("babel-polyfill");
(async function testingAsyncAwait() {
await console.log("Print me!");
})();
ЖУРНАЛЫ РЕГИСТРАЦИИ-
BOZZMOB-M-T0HZ:rest bozzmob$ babel helloz.js > helloz.trans.js
SyntaxError: helloz.js: Unexpected token (3:7)
1 | require("babel-polyfill");
2 |
> 3 | (async function testingAsyncAwait() {
| ^
4 | await console.log("Print me!");
5 | })();
Ответы:
Асинхронные функции не поддерживаются версиями Node старше 7.6 .
Вам нужно будет перенести ваш код (например, с помощью Babel ) в версию JS, которую Node понимает, если вы используете старую версию.
Тем не менее, текущая (2018 г.) LTS- версия Node.js - 8.x, поэтому, если вы используете более раннюю версию, вам следует очень серьезно подумать об обновлении.
источник
Nodejs поддерживает async / await начиная с версии 7.6.
Сообщение о выпуске: https://v8project.blogspot.com.br/2016/10/v8-release-55.html
источник
Node.js не полностью поддерживает ES6 в настоящее время, так что вы можете использовать либо asyncawait модуль или transpile его с помощью Bable.
устанавливать
helloz.js
источник
Если вы просто экспериментируете, вы можете использовать
babel-node
инструмент командной строки, чтобы опробовать новые функции JavaScript.Установить
babel-cli
в свой проект$ npm install --save-dev babel-cli
Установите пресеты
$ npm install --save-dev babel-preset-es2015 babel-preset-es2017
Настройте свои пресеты Babel
Создайте
.babelrc
в корневой папке проекта следующее содержимое:{ "presets": ["es2015","es2017"] }
Запустите свой сценарий с помощью
babel-node
$ babel-node helloz.js
Это только для разработки и тестирования, но, похоже, именно этим вы и занимаетесь. В конце концов, вы захотите настроить webpack (или что-то подобное) для переноса всего вашего кода для производства.
Если вы хотите запустить код где-нибудь еще, webpack может помочь, и вот простейшая конфигурация, которую я смог разработать:
источник
node v6.6.0
Если просто использовать в разработке. Ты можешь сделать это:
это
package.json
будет так:создайте
.babelrc
файл и напишите это:а затем запустите свой
async/await
сценарий следующим образом:источник
Хотя я опаздываю, у меня сработало то, что я установил плагин transform-async-generator и transform-runtime следующим образом:
npm i babel-plugin-transform-async-to-generator babel-plugin-transform-runtime --save-dev
это
package.json
будет так:создайте
.babelrc
файл и напишите это:а затем счастливого кодирования с
async/await
источник
включите и укажите последнюю версию механизма узла, скажем, в это время я добавил версию 8.
в следующем файле
источник
У меня тоже была такая же проблема.
Я запускал node v 6.2 вместе с purgecss в моем gulpfile. Проблема возникла только тогда, когда я создал новый проект Laravel; до этого момента у меня никогда не было проблем с purgecss.
Следуя заявлению @ Quentin - как версии узлов до 7.6 не поддерживают асинхронные функции - я решил обновить свою версию узла до 9.11.2.
Это сработало для меня:
1-
2-
удалить node_modules из каталога маршрута
3-
Все еще не уверен, как node / purgecss работал до обновления ... но это помогло.
источник