Webpack не поддерживает классы?

70
05 марта 2022, 14:50

Cтолкнулся с такой проблемой: объявление класса со свойством (приватным или нет - не важно)

'use strict';
class Mult {   value = 2;
  constructor(int) {
    this.int = int;   }
  double() {    return this.int * this.value;   } }
let val = new Mult(5);
console.log(val.double())

приводит к ошибке

    index.js:1 Uncaught Error: Module parse failed: Unexpected token (4:8)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| 
| class Mult {
>   value = 2;
| 
|   constructor(int) {
    at eval (index.js:1)
    at Object../app/js/index.js (bundle.js:96)
    at __webpack_require__ (bundle.js:20)
    at bundle.js:84
    at bundle.js:87

Сборка: gulp + webpack. Что это значит? Webpack не поддерживает классы ES6?

Answer 1

Проблема решилась подключением babel и плагина @babel/plugin-proposal-class-properties. В webpack.config это выглядит так:

 module: {
    rules: [{
      test: /\.js$/,
      exclude: /node_modules/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env'],
          plugins: ['@babel/plugin-proposal-class-properties']
        }
      }
    }]
  },
Answer 2

В документации MDN по классам говорится

Public and private field declarations are an experimental feature (stage 3) proposed at TC39, the JavaScript standards committee. Support in browsers is limited, but the feature can be used through a build step with systems like Babel.

Попробуйте обновит ваш node.js или использовать Babel

READ ALSO
Как получить значение присвоенное в функции

Как получить значение присвоенное в функции

В случае обычных функций нужно использовать return, а как поступить например с таким:

90
Загрузка файла через js

Загрузка файла через js

У меня есть сервер на golangКогда из браузера идет обращение к серверу по пути http://localhost:8081/generateJSON на сервере генерируется json файл и сразу же отдается...

105
Как передать параметры из функции внутри функции

Как передать параметры из функции внутри функции

Скажите пожалуйста, как мне передать параметры а и b в example? Формат ниже не работает

79
Функция для кнопок

Функция для кнопок

Подскажите пожалуйста, как сделать функцию, для одной кнопки, что бы при нажатие на нее, нажимались все, кнопок более 15, с разными id

89