@hbrmdc

Как заставить NodeJS сервер понимать es6 import и export?

Я использую gulp, babelify и browserify для компиляции клиентской части:
gulp.task('buildApp', function() {
  return browserify('src/js/main.js')
    .transform(babelify)
    .bundle()
    .pipe(source('main.js')) // gives streaming vinyl file object
    .pipe(buffer()) // <----- convert from streaming to buffered vinyl file object
    .pipe(uglify()) // now gulp-uglify works 
    .pipe(gulp.dest('./dist'));
});


Как сделать то же самое для серверной части? На сколько мне известно, browserify не работает с серверным кодом.

Вот это работает:
gulp.task('server', () => {
  return gulp.src('server/server.js')
    .pipe(babel({
      presets: ['es2015', 'react']
    }))
    .pipe(gulp.dest('./dist'));
});


... но полностью игнорирует import и export
  • Вопрос задан
  • 4604 просмотра
Пригласить эксперта
Ответы на вопрос 3
pomeo
@pomeo
Константин Китманов и Aves с babel-register были близки, только это в babel 5 было, сейчас по-другому.
npm install babel-core babel-preset-es2015 --save
Создаёте .babelrc
{
  "presets": ["es2015"],
}

Создаёте например index.js
require('babel-core/register');
require('./server');

В server.js у вас уже начинается обычная нода, import, export и т.д. будут работать
Ответ написан
Pinsky
@Pinsky
Кофеиноникотиновая смесь в backend-код
Версия ноды?
Если LTS то должна подхватывать сразу(при наличии "use strict"), если младше - то нужен ключ --harmony
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Совсем не так это нужно делать на сервере. А как — написано на офф. сайте: https://babeljs.io/docs/usage/require/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
24 апр. 2024, в 22:11
2000 руб./за проект
24 апр. 2024, в 22:00
500 руб./в час
24 апр. 2024, в 21:49
10000 руб./за проект