Задать вопрос
b00tyCha1n
@b00tyCha1n
Stupidity - key to the answer

Как исправить ошибку .targets is not allowed in preset options?

Здравствуйте! Учусь создавать билды при помощи webpack, следовал различным инструкциям и столкнулся с проблемой, которая заключается в ошибке:
Error: [BABEL] C:\Users\User\Desktop\project\src\index.js: .targets is not allowed in preset options

Это происходит из-за того, что я хочу транспилировать код, соответственно без транспилсяции всё собирается нормально и код работает.

Код конфига
const path = require("path");

module.exports = {
    entry: "./src/index.js",
    output: {
        filename: "main.js",
        path: path.resolve(__dirname, "dist"),
    },

    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: "/node_modules/",
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: ["@babel/preset-env", { targets: "defaults" }],
                    },
                },
            },
        ],
    },
};


Дело в том, что если не писать объект options, то проект собирается, однако код не транспилируется.

Код index.js
import Counter from "./counter";

const counter = new Counter(10);

console.log(counter.getCounter());

counter.increment();
counter.increment();

console.log(counter.getCounter());


counter.js
export default class Counter {
    constructor(n) {
        this.counter = n;
    }

    getCounter() {
        return this.counter;
    }

    increment() {
        this.counter++;
    }

    decrement() {
        this.counter--;
    }
}


Подскажите, пожалуйста, как решить данную проблему
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
black1277
@black1277
Вольный стрелок
Во-первых, убедитесь, что пресеты установлены тоже:
npm i -D @babel/preset-env
Во-вторых, вы пару квадратных скобок забыли. Должно быть вот так:
{
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
                loader: 'babel-loader',
                options: {
                  presets: [
                    ['@babel/preset-env', { targets: "defaults" }]
                  ]
                }
              }
      },
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы