错误:模块构建失败(来自 ./node_modules/mini-css-extract-plugin/dist/loader.js):

Posted

技术标签:

【中文标题】错误:模块构建失败(来自 ./node_modules/mini-css-extract-plugin/dist/loader.js):【英文标题】:Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): 【发布时间】:2021-11-11 02:16:35 【问题描述】:

我有以下错误:

./src/styles.scss - ModuleError:模块错误(来自 ./node_modules/postcss-loader/dist/cjs.js): /Users/pedrocovarrubias/Documents/GitHub/Angular/conFusion/node_modules/font-awesome/scss/_path.scss:6:2:无法解析'../node_modules/font-awesome/node_modules/font-awesome/fonts /fontawesome-webfont.eot' 在'/Users/pedrocovarrubias/Documents/GitHub/Angular/conFusion/src' 在 Object.emitError (/Users/pedrocovarrubias/Documents/GitHub/Angular/conFusion/node_modules/webpack/lib/NormalModule.js:562:6) 在声明处(/Users/pedrocovarrubias/Documents/GitHub/Angular/conFusion/node_modules/@angular-devkit/build-angular/src/webpack/plugins/postcss-cli-resources.js:145:28) 在 processTicksAndRejections (internal/process/task_queues.js:95:5) 在异步 LazyResult.runAsync (/Users/pedrocovarrubias/Documents/GitHub/Angular/conFusion/node_modules/postcss/lib/lazy-result.js:411:15) 在异步 Object.loader (/Users/pedrocovarrubias/Documents/GitHub/Angular/conFusion/node_modules/postcss-loader/dist/index.js:97:14)

这是我的 style.scss 代码:

/* You can add global styles to this file, and also import other style files */
@import '~@angular/material/prebuilt-themes/deeppurple-amber.css';
@import 'variables';
@import '../node_modules/font-awesome/scss/font-awesome';

// some basic resets 

$lt-gray: #ddd;
$background-dark: #512DA8;
$background-light: #9575CD;
$background-pale: #D1C4E9;
$primary-color-dark:   #512DA8;
$primary-color:        #673AB7;
$primary-color-light:  #D1C4E9;
$primary-color-text:   #FFFFFF;
$accent-color:         #FFC107;
$primary-text-color:   #212121;
$secondary-text-color: #757575;
$divider-color:        #BDBDBD;

@mixin zero-margin($pad-up-down, $pad-left-right) 
    margin: 0px auto;
    padding: $pad-up-down $pad-left-right;


body  
  padding: 0; 
  margin: 0; 
  font-family: Roboto, sans-serif; 


.container 
    margin: 20px;
    display:flex;


.background-primary 
  background-color: $background-dark!important;

.background-accent 
  background-color: $accent-color!important;

.text-floral-white 
  color: floralwhite!important;


.flex-spacer 
flex: 1 1 auto;

有人可以帮忙吗?

【问题讨论】:

当您注释掉 styles.scss 中的所有内容时,它会解决问题吗? 您使用的是最新版本的 Node.js?更新版本的 Angular 仅适用于更新版本的 Node 当您注释掉 styles.scss 中的所有内容时,它会解决问题吗?是的,如果我从 styles.scss 中取出所有内容,问题就解决了 好的,能不能逐行慢慢恢复styles.scss,看看是哪一行导致的问题? (恢复一半,然后你知道问题出在哪一半,然后是下一个季度,等等) 您使用的是最新版本的 Node.js?较新版本的 Angular 仅适用于较新版本的 Node 是的,我使用的是 node.js 14.x,与 Angular 12.x 一起使用的版本也是如此 【参考方案1】:

要从 style.scss 中的 node_modules 导入,请使用以下语法:

这一行是从 node_modules 导入的……正确的做法:

@import '~@angular/material/prebuilt-themes/deeppurple-amber.css';

此行错误需要使用~语法:

@import '../node_modules/font-awesome/scss/font-awesome';

应该是:

@import '~font-awesome/scss/font-awesome';

或者如果这不起作用,请像这样在 angular.json 中导入:

"styles": [ "src/styles.scss", "node_modules/font-awesome/scss/font-awesome" ]

确保添加到 angular.json 中的两个“样式”属性并重新启动您的开发服务器以获取更改。以这种方式从 node_modules 导入时,请确保您尝试导入的文件存在于 node_modules 目录中。

【讨论】:

我在 angular.json 中添加了这样的:“../node_modules/font-awesome/scss/font-awesome.scss”,编译没问题,但图标不显示html,有什么建议吗? 我刚刚在上面添加了 3 个 cmets - 确保你应用了我刚刚添加的所有 3 个其他 cmets 您需要 .. 吗?我把它拿出来但没有改变你重新启动了角度开发服务器吗?是的,您是否为 angular.json 中的两个样式属性添加了这一行?是的 好的,我在上面的主要评论区添加了一条新评论 - 请也检查一下 我修好了,我必须在styles.scss中改成@import '~node_modules/font-awesome/scss/font-awesome';另外,在另一个文件调用 _variables.scss 中,我必须更改 $fa-font-path: '../node_modules/font-awesome/fonts'; to $fa-font-path: '~node_modules/font-awesome/fonts';

以上是关于错误:模块构建失败(来自 ./node_modules/mini-css-extract-plugin/dist/loader.js):的主要内容,如果未能解决你的问题,请参考以下文章

带有 babel 的 webpack 显示错误模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):

为啥我会收到此错误:模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):语法错误 Unexpected token, expected "

模块构建失败(来自 ./node_modules/sass-loader/dist/cjs.js)

模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

如何修复“模块构建失败(来自 ./node_modules/postcss-loader/src/index.js)”

反应构建问题,。/ src / index.js中的ERROR模块构建失败(来自./node_modules/babel-loader/lib/index.js):