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

61
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, а как поступить например с таким:

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

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

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

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

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

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

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

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

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

79