今天突然發現不能打包了,之前還是好好的,使用命令
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 協議》,轉載必須註明作者和本文連結