我剛剛從 Angular 12 升級到 Angular 13,還更新了其他一些 NPM 包。
其中之一包含我的 angular.json 檔案中參考的 scss 檔案。這從來都不是問題,但是在嘗試為我的應用程式提供服務后,我收到一條我很難理解的錯誤訊息:
./src/styles/ag-grid.scss.webpack[javascript/auto]!=!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/styles/ag-grid.scss - Error: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Can't find stylesheet to import.
?
1 │ @import 'my-custom-package-layout/src/lib/styles/styles.scss';
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
?
src\styles\ag-grid.scss 1:9 root stylesheet
./src/styles/products.scss.webpack[javascript/auto]!=!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/styles/products.scss - Error: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Can't find stylesheet to import.
?
1 │ @import 'my-custom-package-layout/src/lib/styles/mixins.scss';
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
?
src\styles\products.scss 1:9 root stylesheet
./src/styles/ag-grid.scss - Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
HookWebpackError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Can't find stylesheet to import.
?
這只是很長的錯誤訊息的第一行,指出在許多檔案中找不到“my-custom-package-layout/src/lib/styles/styles.scss”。
但是,如果我使用 Visual Studio 代碼導航到那里,我不會收到錯誤,并且參考似乎很好。
這讓我覺得 sass-loader 通常不再作業了。(第一行很長。看那里——它真的像這樣!)
Angular 中的 sass-loader 是如何實作的?我無法重新安裝 sass,因為它甚至沒有在我的 package.json 中參考。
它是 Angular.cli 的一部分嗎?
我可以嘗試什么更接近解決方案?
如果我運行“npm rebuild node-sass”,我很快就會得到回復:
rebuilt dependencies successfully
沒變化...
uj5u.com熱心網友回復:
這是因為 node-sass 的快取版本。你可以試試這個。
- 從全域 npm-cache 中洗掉 node-sass(對于 Windows 用戶 %userprofile%\AppData\Roaming\npm-cache)。
- 從專案的 node_modules 目錄中洗掉 node-sass。
- 執行 npm install 以重新安裝 node-sass。
uj5u.com熱心網友回復:
我不得不在路徑前面放一個?標志。這解決了它:
@import '~my-custom-package-layout/src/lib/styles/mixins.scss';
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/411282.html
標籤:
