在Material Component Web的示例中,我希望能够从my node_modules导入SCS,如下所示:

@import '@material/elevation/mdc-elevation';

但是,我在try 运行webpack构建时收到以下错误消息:

File to import not found or unreadable: @material/elevation/mdc-elevation.

@import './~/@material/elevation/mdc-elevation.scss';也不行.

我很确定这个问题在我的网页配置中的某个地方,但我不知道在哪里.

What did they do in 100's 101 in order to make it work?

这是我的npm-debug.log英镑,以备不时之需.

提前谢谢!

编辑:我希望能够导入scss个文件,而不是编译后的css.

推荐答案

知道了.

以下是我的网页2配置module.rules的一部分:

{
  test: /\.(sass|scss)$/,
  use: [
    'style-loader',
    'css-loader',
    {
      loader: 'sass-loader',
      options: {
        includePaths: [path.resolve(__dirname, 'node_modules')],
      },
    },
  ],
},

那我做错了什么?

旧的网页包配置规则如下所示:

{
  test: /\.(sass|scss)$/,
  use: ['style-loader', 'css-loader', 'sass-loader'],
  options: { includePaths: [path.resolve(__dirname, './node_modules')] },
},

看到区别了吗?我没有使用"sass loader"字符串,而是将其扩展到一个对象,其中包含loader名称和options对象,因为options仅适用于sass-loader.

(您也可以删除path.resolve,只写'node_modules',但离开它可能更安全.)

查看此文档页面了解更多信息.https://webpack.js.org/configuration/module/#rule-use

如果没有这个加载器,你必须在每次导入前加上~,这个webpack会转换成node_modules文件夹,至少是我之前的配置.

Inside .vue files

这在中国行不通.vue文件,默认情况下vue-loader只使用sass加载程序without any options.

(不知什么原因,我无法让它工作……)

Vue.js相关问答推荐

在VITE-VUE APP-DEV模式上重定向HTTP请求

Vuetify 3 改变 Select 的 colored颜色

Vue 3:插槽属性 - 可以通过 props 传递数据吗?

Vue CLI: 如何在一个vtextfield更改时让另一个vtextfield的值也同时更改,但同时又可以覆盖它?

在 bootstrap-vue 中渲染自定义样式

在组件之间共享 websocket 连接

VueJS中的绑定函数含义

Vue子组件等待props

Vue 和 Bootstrap Vue - 动态使用插槽

Vue.js 中有没有类似Jquery $(document).ready的功能?

如何创建 vuetify 工具栏链接下拉菜单?

如何使表格行可点击并展开行 - vue.js - element-ui

Nuxt:显示静态文件夹中的本map像

SassError:媒体查询表达式必须以(开头

如何在 vue 3 中获取路由的参数?

如何在 NPM 上创建和发布 Vuejs 组件

Vue Chart.js - 条形图上的简单点/线

使用 Vue 的点击编辑文本字段

使用 vuex-persistedstate 仅使一个模块持久化

居中 v-toolbar-title