2

У меня есть проект, который использует Gulp для компиляции SASS и минимизации JS и т. Д. (На основе Drupal).Какие инструменты мне нужны для использования импорта стиля ES6 для моего проекта с использованием Gulp?

Я хотел бы использовать импорт стиля ES6, а также иметь возможность импортировать модули, которые расположены в node_modules без ссылки на полный путь (например, импортировать модуль lodash.debounce в

import throttle from 'lodash.throttle' 

Что я (кроме Gulp и NPM). Babel? Browserify? Lost со всеми инструментами.

Я бы хотел избежать webpack, так как это увеличило бы сложность моего проекта (и я не знаю, Я могу использовать его параллельно с тем, как Drupal 7 делает вещи)

ответ

2

Да, вы хотите babel. Документация по настройке в вашем файле gulp приведена здесь: http://babeljs.io/docs/setup/#installation

Чтобы включить синтаксис импорта, вы должны использовать предустановку es2015.

var gulp = require("gulp"); 
var babel = require("gulp-babel"); 

gulp.task("default", function() { 
    return gulp.src("src/app.js") 
    .pipe(babel({ 
     presets: ['es2015'] 
    })) 
    .pipe(gulp.dest("dist")); 
}); 
+0

проверить отредактированный вопрос: достаточно ли для меня возможности напрямую импортировать модули, расположенные в 'node_modules', без ссылки на весь путь? так: 'import throttle from 'lodash.throttle'' –

+0

Отредактированный мой ответ, вы правы, вам также нужен предварительный набор es2015. – AzMoo

+0

Это означает, что во время производства NPM и узловые модули должны присутствовать на сервере? –

2

Для использования import вам нужен transpiler, например, Бабеля. Предполагая, что вы создаете код для браузера, тогда для использования import (transpiled to require) вам нужен веб-пакет или браузер, который также позволит вам импортировать из node_modules (есть и другие модули-сборщики, jspm и systemjs, однако я знаю следующее - Ничего о них). Для любого из них вам также потребуется что-то, что позволит использовать babel в процессе сборки. Я использую webpack с babel-loader.

Я нашел полезную ссылку here специально для использования модулей ES6 с webpack.

+0

это означает, что во время производства NPM и узловые модули должны присутствовать на сервере? –

+0

нет, webpack будет связывать в модулях, которые вам нужны.Это может закончиться очень большой кусок js, поэтому рекомендуется минификация (uglify или подобное). Webpack (и браузер) может также создавать файлы карт, чтобы облегчить отладку. –

+1

спасибо. на данный момент это браузерное решение, но я думаю, что веб-пакет может быть лучшим выбором. –