Чтобы преобразовать node_modules и дочерние пакеты в Babel 7, вам нужно использовать файл babel.config.js
вместо .babelrc
файла.
См. Этот комментарий к выпуску и babelдокументация по конфигурация всего проекта .В частности,
Новое в Babel 7.x, Babel имеет концепцию «корневого» каталога, который по умолчанию является текущим рабочим каталогом.Для конфигурации всего проекта Babel автоматически выполнит поиск «babel.config.js» в этом корневом каталоге.
...
Поскольку файлы конфигурации всего проекта отделены от физическихрасположение файла конфигурации, они могут быть идеальными для конфигурации, которая должна широко применяться, даже позволяя плагинам и пресетам легко применяться к файлам в node_modules или в пакетах с символическими ссылками, которые традиционно были довольно болезненными для настройки в Babel 6.x.
Суть в том, что .babelrc
используется для локальных преобразований файлов проекта (не включая node_modules
), в то время как babel.config.js
следует рассматривать в рамках всего проекта и будет применяться к зависимостям пакетов при пакетировании (node_modules
).Это немного сбивает с толку, но, надеюсь, это поможет!
Edit
Вот немного больше информации о полной конфигурации проекта для создания файла примера с помощью веб-пакета.Обратите внимание, что если вы используете .babelrc
вместо babel.config.js
, то здесь не будет работать. Запуск webpack-cli
создает скрипт script.out.js
, который не использует ключевое слово class.
script.js
import { struct } from 'superstruct';
console.log('finished');
babel.config.js
module.exports = {
"presets": [
[
"@babel/preset-env",
{
"targets": {
"ie": "11"
}
}
]
]
};
webpack.config.js
module.exports = {
entry: './script.js',
output: {
path: __dirname,
filename: 'script.out.js',
},
module: {
rules: [ {
test: /\.m?js$/,
use: {
loader: 'babel-loader'
}
} ]
}
}
Зависимости пакетов
"@babel/core": "^7.3.4",
"@babel/preset-env": "^7.3.4",
"babel-loader": "^8.0.5",
"superstruct": "^0.6.0",
"webpack-cli": "^3.2.3"