Как я обнаружил в этой конкретной проблеме на странице GitHub.
Участник Babel Hzoo предполагает, что
Сейчас пресет предназначен для того, чтобы люди могли использовать его без настройки. Если вы хотите изменить его, вам нужно будет просто определить плагины самостоятельно или создать свой собственный пресет.
Но все же, если вы хотите исключить конкретный плагин из пресета по умолчанию, вот несколько шагов. Как предложил Krucher, вы можете создать ответвление нежелательного плагина следующим образом.
Первый — методом разветвления.
"babel": {
"presets": [
"es2015"
],
"disablePlugins": [
"babel-plugin-transform-es2015-modules-commonjs"
]
}
Но если два или более человека захотят включить es2015-with-commonjs, это будет проблемой. Для этого вам нужно define your own preset
или extend
пресет этого модуля.
Второй метод предполагает сотрясение дерева, как показано на рис. эта статья сделана Dr. Аксель Раушмайер. Согласно статье webpack2
используется с Babel6
. Это помогает удалить нежелательный импорт, который мог быть использован в любом месте проекта двумя способами.
- First, all ES6 module files are combined into a
single bundle file
. In that file, exports that were not imported anywhere are not exported, anymore.
- Во-вторых, набор
minified
, при исключении dead code
. Поэтому сущности, которые не экспортируются и не используются внутри своих модулей, не отображаются в минимизированном пакете. Без первого шага устранение мертвого кода никогда не удалит экспорт (регистрация экспорта поддерживает его существование).
Остальные подробности можно найти в статье.
Простая реализация описана здесь.
- Третий метод предполагает создание собственного пресета для конкретного модуля.
Создание плагина и создание собственного пресета можно осуществить согласно документации здесь
Также в качестве дополнительного совета вы также должны использовать babel-plugin-transforn-runtime. любой из ваших модулей имеет внешнюю зависимость, bundle
в целом будет иметь один и тот же external dependancy
независимо от того, использовали ли вы его на самом деле, что может иметь некоторые side-effects
.
Также существует множество проблем с встряхиванием дерева в файле rollup.js, как видно из этого статья
Также, как показано в пресетах документации
Включено по умолчанию
Эти плагины больше не действуют, так как более новая версия Babylon включила их по умолчанию.
- async-functions (since babylon 6.9.1)
- exponentiation-operator (since babylon 6.9.1)
- trailing-function-commas (since babylon 6.9.1)**
Кроме того, loganfsmyth thread.
вы можете передать параметр белого списка, чтобы указать определенные преобразования для запуска, или черный список для определенных преобразований, которые нужно отключить.
Вы не можете заносить в черный список определенные подключаемые модули, но вы можете перечислить только те, которые вам нужны, за исключением тех, которые вы не хотите запускать.
Обновление:
Согласно этой статье здесь важное обновление -
"Опция --external-helpers
теперь является подключаемым модулем. Чтобы избежать многократного включения вспомогательных функций Babel, вам теперь необходимо установить и применить пакет babel-plugin-transform-runtime. , а затем требовать пакет babel-runtime в коде (да, даже если вы используете полифилл)".
Надеюсь, это может решить вашу проблему
Надеюсь, это поможет вам.
person
Pritish Vaidya
schedule
15.10.2016
external-helpers-2
изменений нет - та же проблема. - person Adam Rackis   schedule 15.10.2016