TypeError: SizeOnlySource is not a constructor
今天突然发现不能打包了,之前还是好好的,使用命令
npm install
后,然后打包
npm run watch-poll
出现错误:
C:\Users\Administrator\Code\Laravel\node_modules\webpack\lib\Compiler.js:756
cacheEntry.sizeOnlySource = new SizeOnlySource(size);
^
TypeError: SizeOnlySource is not a constructor
at updateFileWithReplacementSource (C:\Users\Administrator\Code\larabbs\node_modules\webpack\lib\Compiler.js:756:37)
at updateWithReplacementSource (C:\Users\Administrator\Code\larabbs\node_modules\webpack\lib\Compiler.js:738:8)
at processExistingFile (C:\Users\Administrator\Code\larabbs\node_modules\webpack\lib\Compiler.js:772:8)
at C:\Users\Administrator\Code\larabbs\node_modules\webpack\lib\Compiler.js:841:10
at callback (C:\Users\Administrator\Code\larabbs\node_modules\graceful-fs\polyfills.js:299:20)
at FSReqCallback.oncomplete (node:fs:199:5)
找了好多遍,都没发现原因,只得去看看源码,跟原来的好的比较,也没发现,打开文件夹,发现,我擦,少一部分?!
新的 \node_modules\webpack
文件夹里少了一个 node_modules
文件夹
里面是webpack的源码,TypeError: SizeOnlySource is not a constructor
之所以没有解析到,就是因为缺少了源码。拷贝过去,果然可以正常的打包npm run watch-poll
,但是,一旦 npm install
,这个源码文件夹就被更新掉消失了。
希望这个bug早点修复。
把文件
package-lock.json
删除,npm install
生成新的package-lock.json
文件后,再 npm install
,就不会删除源码文件夹了,相当于修复了。
本作品采用《CC 协议》,转载必须注明作者和本文链接