似乎v3.10.0破坏了我的构建,webpack 日志如下:
ERROR in ./src/pages/score/components/current/no-join/index.less
Module build failed (from ./node_modules/[email protected]@mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/[email protected]@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/[email protected]@webpack/lib/NormalModule.js:313:20)
at /home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:367:11
at /home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:233:18
at context.callback (/home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:111:13)
降级到v3.9.0后一切正常,请调查此问题并希望尽快解决。
我有同样的问题,你mast改变你'package.json' => "less": "~3.9.0", 限制版本
+1
+1
+1!
急 ~
+1
同样的问题
+1 版本少 3.9.0 少加载器 4.1.0
可以把package.json中 less版本的 ^ 去掉 重新安装一下 v3.9.0 应该就可以解决问题 大家可以试一下
虽然 锁定了版本 但是由于 ^, 所以会下载3 一下的最新版本, 最新版本应该是有问题的。
+1
+1
const shortname = new this.less.FileManager().extractUrlParts(filename).filename;
这个类似代码引起的?
omg,我将版本限制为3.9.0,可以。
同样在这里。 npm 会自动获取这个“次要”版本,并破坏我所有的构建。 :(
+1
v3.10.0 同样的错误
+1
匆忙
+1
只需使用[email protected]一切都会好的
@lixiaohulee除非您不使用 less-loader 并且一切都不会好
+1
+1
我也有同样的问题 (((
+1
我也有同样的问题 :/
这是旧版本less-loader
的问题,而不是 Less,它没有正确继承 Less 文件管理器。 less-loader
5.0 可以。 见: https ://github.com/less/less.js/issues/3414#issuecomment -522223041
解决了吗?
解决了吗?
你可以,把你package.js 里的less依赖,重新安装最近小版本依赖。
+1
呜呜呜!!! 为什么不解决这个问题,因为许多项目已经用4.1.0
锁定less-loader
版本。
我们正在使用破坏的 antd: https ://github.com/ant-design/ant-design/issues/18343
我们如何解决这个问题?
@montanaflynn保留较旧的环境并使用npm-shrinkmap.json
生成锁定的依赖关系图可能是一个不错的选择。
@aleen42谢谢,我希望这可以很快解决,我对所有 npm 的东西都不是很熟悉。
@montanaflynn我在构建过程中遇到过很多次由于未锁定的依赖项(包括子依赖项)而中断的情况。 对于大多数 FE 开发人员来说,这是一个令人困惑的 NPM 问题。
@aleen42我们通过添加来修复它
"devDependencies": {
"less-loader": "^5.0.0"
}
为什么会出现这个问题?
Node.js 版本不对?
这不是节点版本问题。
@montanaflynn ,您还可以通过临时指定less-loader
的子版本来解决问题:
devDepedencies: {
"less-loader": "4.1.0",
"less": "3.9.0"
}
升级yarn upgrade less@^3.10.1 less-loader@^5.0.0
使用"less": "~3.9.0"
+1
+1
顺便说一句,对于那些观看此线程的人,我将在今天晚些时候重新打开并可能会为较旧的less-loader
版本提交修复,只是为了让事情不那么烦人。
这是实际使用Class
语法替换原型函数的边缘情况之一,在没有new
的情况下会引发错误。 FileManager 应该始终使用new
(这是记录在案的 API)调用,而旧版本的less-loader
显然没有。
_再一次,不过,如果您正在查看线程,只需更新到less-loader
5.0 即可修复此不兼容性。_
我认为less-loader
最好将其依赖项降级到3.9.0
以下。
@aleen42当最新版本的less-loader
工作正常时,为什么有必要这样做?
假设某些项目可能不需要考虑从4.x
到5.x
的高级升级风险。
+666
有人可以试试: https://github.com/less/less.js/pull/3421?
分支位于: https ://github.com/matthew-dean/less.js/tree/release/v3.10.2
测试这个的挑战是less-loader
自己的测试在 3.9.0 上失败了,所以不清楚预期是什么。 但是,随着 Less 的导出类被转换为函数,同样的错误至少会在less-loader
中触发,所以不清楚这是否是预期的输出。 也不清楚_how_或为什么这个错误发生在Less loader v4中,而在v5中没有发生,除非它可能是v4上的Webpack问题?
无论如何,如果人们可以确认此分支作为 Less 依赖项不会导致类问题,那么我会将其合并。
+1 版本少 3.9.0 少加载器 4.1.0
+1
+1
手动指定less版本:
npm i [email protected] -D
好的!!!
通过降级到 3.9.0 进行修复
就在之前,我删除了 node_modules 并输入npm i
,发生了这个错误。 所以最新版本的3.10.1
还是有这个bug。 我选择降级到 3.9.0
如果我使用@zeit/next-less,我将如何修复这个错误? 任何帮助表示赞赏。
@ezgitek
npm i @zeit/next-less
npm i [email protected]
https://forum.vuejs.org/t/vue-cli/72008/7
"少": "^3.10.1",
"less-loader": "^5.0.0",
在跑
合并: https ://github.com/less/less.js/pull/3421
没有 less-loader v4 问题的人似乎愿意测试 [3.10.2] 🤷♂,但在我的测试中,Less-loader 的 v4 测试与 3.10.1(类构造函数问题)不同,并且与此 PR 相同. 所以.....不确定它是否可以修复它,但它应该不会更糟吗?
我将该可能的修复合并到 master 中(但尚未发布到 NPM)。 仍然希望有人在发布之前确认而不是 +1。
我可以确认我刚刚使用 less-loader ^4.1.0 在本地尝试了 less 的当前 master 分支,并且我的项目能够再次构建。 👍
感谢您在这方面所做的工作!
@jenniferneale感谢您的确认! 我将在今天晚些时候发布到 NPM,不能下班。
+1
3.10.3 解决了这个问题吗?
@H4ngman应该是。 如果没有,请重新打开。
最有用的评论
我有同样的问题,你mast改变你'package.json' => "less": "~3.9.0", 限制版本