包裹+;SASS:从节点_模块导入而不使用波浪线操作符?还是别的什么?

包裹+;SASS:从节点_模块导入而不使用波浪线操作符?还是别的什么?,sass,node-modules,parceljs,mdc-components,Sass,Node Modules,Parceljs,Mdc Components,我正在使用带有SASS的包裹,并且我正在尝试使用 (MDC网站) 在MDC Web指南中,他们说您应该在样式表中导入此软件包附带的模块,如下所示: @import "@material/textfield/mdc-text-field"; 但当我尝试此操作并运行parcel时,会收到以下错误消息: Can't find stylesheet to import. ╷ 2 │ @import "@material/textfield/mdc-text-field"; │

我正在使用带有SASS的包裹,并且我正在尝试使用 (MDC网站)

在MDC Web指南中,他们说您应该在样式表中导入此软件包附带的模块,如下所示:

@import "@material/textfield/mdc-text-field";
但当我尝试此操作并运行parcel时,会收到以下错误消息:

Can't find stylesheet to import.
  ╷
2 │ @import "@material/textfield/mdc-text-field";
  │         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ╵
  main.scss 2:9  root stylesheet
Error: Can't find stylesheet to import.
因此,当我将行更改为以下内容时,使用tilde操作符

@import "~@material/textfield/mdc-text-field";
它找到要导入的样式表,但节点_模块内的引用样式表mdc文本字段尝试加载其他样式表,而不使用tilde运算符,因此我遇到了如下错误:

 Can't find stylesheet to import.
   ╷
23 │ @import "@material/animation/variables";
   │         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
  node_modules\@material\textfield\mdc-text-field.scss 23:9  @import
  main.scss 2:9                                              root stylesheet
Error: Can't find stylesheet to import.

那么如何解决这个问题呢?

创建一个
.sassrc.js
文件并添加以下行

const path = require('path')
const CWD = process.cwd()

module.exports = {
  "includePaths": [
    path.resolve(CWD, 'node_modules')    
  ]
}
你可以参考


我希望这个答案有帮助。

我发现这是一个更好的解决方案,但请注意,
“sass”:{“includePaths”:[“/node\u modules”]}
也可以添加到
package.json
中,如果您不需要单独的
.sassrc.js
文件。有关更多背景信息,请参阅上的讨论