Uncaught RangeError: Превышен максимальный размер стека вызовов
Эта ошибка довольно хорошо задокументирована здесь и в других местах, и я понимаю, что получатель действительно вызывает себя снова и снова.
Но с приведенной ниже конфигурацией Webpack, тот же код Klass
не зацикливается бесконечно со стандартной create-react-app
настройкой Webpack .Чего не хватает в моей конфигурации Webpack?
index.js
class Klass {
constructor() {
this.alreadyCame = !!this.clientId;
}
get clientId() {
const clientId = Cookie.get(Cookie.cookies.client);
if (clientId !== undefined) {
return decode(clientId);
}
else {
this.clientId = uuid();
return this.clientId;
}
}
set clientId(value) {
if (value !== undefined) {
Cookie.set(Cookie.cookies.client, encode(value), Cookie.duration.long);
}
}
}
export default new Klass();
webpack.config.development.js
const HtmlWebpackPlugin = require('html-webpack-plugin');
const path = require('path');
module.exports = {
bail: true,
entry: path.resolve(__dirname, 'src/index.js'),
mode: 'development',
module: {
rules: [{
oneOf: [
{
include: path.resolve(__dirname, 'src/'),
loader: 'babel-loader',
options: {
cacheDirectory: true,
plugins: [
'@babel/plugin-proposal-class-properties',
],
presets: [
'@babel/preset-env',
'@babel/preset-react',
],
},
test: /\.js$/,
},
{
include: path.resolve(__dirname, 'src/'),
use: [
{loader: 'css-loader'},
{loader: 'sass-loader'},
],
test: /\.(sass|scss)$/,
},
],
}],
strictExportPresence: true,
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'build/'),
},
plugins: [
new HtmlWebpackPlugin({
template: path.resolve(__dirname, 'public/index.html'),
}),
],
};