Class constructor FileManager cannot be invoked without 'new'

本文详细解析了在使用Webpack打包时遇到的Less错误,并提供了两种有效的解决方案,一是锁定Less版本在3.10以下,二是升级less-loader版本到5.0.0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎访问我的个人博客:http://www.xiaolongwu.cn

webpack打包时出现以下问题

ERROR in ./src/pages/score/components/current/no-join/index.less
Module build failed (from ./node_modules/_mini-css-extract-plugin@0.5.0@mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/_less-loader@4.1.0@less-loader/dist/cjs.js):


Class constructor FileManager cannot be invoked without 'new'
      in undefined (line undefined, column undefined)
    at runLoaders (/home/admin/build/node_modules/_webpack@4.39.2@webpack/lib/NormalModule.js:313:20)
    at /home/admin/build/node_modules/_loader-runner@2.4.0@loader-runner/lib/LoaderRunner.js:367:11
    at /home/admin/build/node_modules/_loader-runner@2.4.0@loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/home/admin/build/node_modules/_loader-runner@2.4.0@loader-runner/lib/LoaderRunner.js:111:13)
这个问题是由于less升级导致的bug;

具体的解决方案: https://github.com/less/less.js/issues/3414

解决方案一

也就是将less锁定版本在3.10以下,及3.9.0。

解决方案二

或者将less-loader版本升级到5.0.0即可。


我的github资源地址:Class constructor FileManager cannot be invoked without ‘new’

我的优快云博客地址:https://blog.youkuaiyun.com/wxl1555

如果您对我的博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同学习进步。

邮箱:wuxiaolong802@163.com

### 回答1: 这个错误提示是因为你在调用一个类的构造函数时,没有使用 `new` 关键字。在 JavaScript 中,如果你想创建一个类的实例,必须使用 `new` 关键字来调用它的构造函数。 例如: ``` class MyClass { constructor() { // 构造函数代码 } } // 创建 MyClass 的实例 const myInstance = new MyClass(); ``` 如果你不使用 `new` 关键字来调用构造函数,就会出现类似于“class constructor MyClass cannot be invoked without 'new'”这样的错误提示。 ### 回答2: class constructor servecommand cannot be invoked without 'new' 是一个 JavaScript 错误提示信息,它的意思是,在不使用关键字 "new" 的情况下无法调用类构造函数 servecommand。 在 JavaScript 中,一个类的构造函数是在类实例化的时候被自动调用的,用来初始化类的属性和方法。而当我们想要实例化一个类时,需要使用 "new" 关键字来调用构造函数。但是,如果在调用构造函数时忘记使用 "new" 关键字,就会触发该错误。 这个错误可能出现在下面这样的代码中: ``` class ServeCommand { constructor() { this.commandName = "serve"; this.description = "Start the server"; } } const command = ServeCommand(); // 错误 ``` 上面的代码中,我们定义了一个 ServeCommand 类,其中 constructor() 方法用来初始化类的属性和方法。但是当我们尝试实例化 ServeCommand 类时,直接调用了构造函数 ServeCommand(),而没有使用 "new" 关键字,因此就会触发 "class constructor servecommand cannot be invoked without 'new'" 错误。 要解决这个问题,我们只需要在实例化 ServeCommand 类时正确地使用 "new" 关键字: ``` const command = new ServeCommand(); // 正确 ``` 这样,就能成功实例化 ServeCommand 类,并执行相应的构造函数。 ### 回答3: 这个错误意味着您在调用类构造函数servecommand时没有使用 "new" 关键字,但却试图直接调用它,从而导致错误。 在JavaScript中,类构造函数必须使用 "new" 关键字来创建类的实例。如果没有使用 "new" 关键字,则构造函数不会返回类的实例,而是返回 undefined。因此,当您尝试使用未定义的实例时,就会抛出该错误。 为了解决这个错误,您应该始终确保在调用类构造函数时使用 "new" 关键字。例如,应该这样调用servecommand类的构造函数: var myServeCommand = new servecommand(); 这将创建一个新的类实例,并将其分配给变量 myServeCommand。您可以随后在代码中使用这个变量来与servecommand类实例进行交互。 总之, "class constructor servecommand cannot be invoked without 'new' " 错误是由于没有使用 "new" 关键字来调用servecommand类构造函数而引起的。为了避免这个错误,您应该始终使用 "new" 关键字来实例化类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值