Использование babel-node
я смог запустить следующий кодАсинхронный генератор работает на Бабель-узле, но не ж/столпотворение регистра или построить
function timeout(ms = 100) {
return new Promise(resolve => {
let id = setTimeout(() => {
clearTimeout(id)
resolve(ms)
}, ms)
})
}
async function* worker(limit = 10) {
async function fetch() {
return await timeout(Math.random() * 1000)
}
let low = 0;
while (low++ < limit) yield await fetch()
}
async function run() {
const gen = worker(5)
const results = [];
for await (const res of gen) {
console.log('working')
results.push(res)
}
return 'done'
}
run().then(res => console.log(res)).catch(err => console.error(err))
здесь не работает, но работает на онлайн Babel REPL
Как и когда я запускаю его через babel-node
как:
babel-node src/script.js
Однако она терпит неудачу, когда я построить и запустить его следующим образом:
babel src/script.js --out-file dist/script.js
node dist/script.js
и дает мне
TypeError: iterable[Symbol.iterator] is not a function
Использование babel-register
также не ж/ту же ошибку:
node -r babel-register -r dotenv/config src/script.js
Мой текущий .babelrc
выглядит как
{
"plugins": ["transform-strict-mode", "transform-async-generator-functions"],
"presets": ["es2015-node6", "stage-2"]
}
использование es2015
вместо es2015-node6
не дали никакой пользы
Когда я смотрел на плагин по умолчанию и пресеты, используемые для babel-node
here, и похоже, они пусты
Что мне не хватает?
Какой босс! Хороший глаз только проблема 'импорт«столпотворение-polyfill»,' еще дали ту же ошибку, но когда я засунул его в аргументах он работал так: нода -r столпотворение регистра -r dotenv/конфигурации -r babel-polyfill src/script.js' – vvMINOvv
Чтобы использовать в prod, постройте, как обычно, и запустить 'node -r babel-polyfill dist/script.js' – vvMINOvv