Вам нужно будет использовать фильтр babel с babel-presets-env
.Документация по webassets немного отстает от последних разработок, что неудивительно, если учесть, насколько быстро все движется в мире javascript.
Итак, сначала вам нужно установить babel-cli
глобально:
npm install -g babel-cli
Теперь вам нужно будет установить babel-preset-env
локально, поэтому в каталоге вашего проекта выполните:
npm install --save babel-preset-env
Наконец, вот как настроить ваш пакет с помощью flask-assets
:
from flask_assets import Bundle, Environment
from webassets.filter import get_filter
assets = Environment()
assets.init_app(app)
babel = get_filter('babel', presets='babel-preset-env')
assets.register('js_all', Bundle(
'js/code_with_es2016.js',
output='public/js/code.min.js',
filters=[babel, 'rjsmin']
))
Вы также можете указать Babel, где установлен ваш babel-preset-env
, указав абсолютный или относительный путь к нему:
preset_location = './path/to/node_modules/babel-preset-env'
babel = get_filter('babel', presets=preset_location)
assets.register('js_all', Bundle(
'js/code_with_es2016.js',
output='public/js/code.min.js',
filters=[babel, 'rjsmin']
))
И последнее, и это только (как) мое мнение, яочень рекомендую перейти на процесс сборки на основе javascript / node для ваших ресурсов внешнего интерфейса (вы уже используете babel!).В зависимости от того, что вы разрабатываете, gulp или webpack могут быть хорошими кандидатами для использования в вашей сборке интерфейса.Flask-assets / webassets кажутся просто ненужными, потому что они отстают в своих документах и пакетных версиях от того, что является самым последним и лучшим в мире внешнего интерфейса.