我的 .scss 文件出现 Vue.js webpack sass-loader 问题

Posted

技术标签:

【中文标题】我的 .scss 文件出现 Vue.js webpack sass-loader 问题【英文标题】:Vue.js webpack sass-loader issue with my .scss file 【发布时间】:2018-09-11 13:56:09 【问题描述】:

我正在使用文档中所述的 style-loader、node-sass、sass-loader 包。 我在我的 webpack.base.conf.js 中添加了以下模块规则

  
    test: /\.(s?)css$/,
    use: ['style-loader','css-loader','sass-loader']
  ,

在我的 ma​​in.js 中,我导入了我的 .scss 文件

 import 'element-ui/lib/theme-chalk/index.css' // Theme UI
import './assets/scss/index.scss' // Customize UI

但是在构建阶段我得到一个错误,因为主题 css 被加载但是然后

error  in ./src/assets/scss/index.scss
 Module build failed:
 @import './globals/index.scss';
 ^

我不清楚如何正确处理 css 和 scss 文件...谷歌搜索时“解决方案”太多...找不到最新的

欢迎反馈

【问题讨论】:

【参考方案1】:

已解决..(使用 webpack 3.6.0

webpack.base.config.js

不需要

测试:/.(s?)css$/, 使用:['style-loader','css-loader','sass-loader'] ,

所以我删除了它

utils.js 中,我应该有我的 css-loader

exports.cssLoaders = function (options) 
  options = options || 

  const cssLoader = 
    loader: 'css-loader',
    options: 
      sourceMap: options.sourceMap
    
  

main.js 删除了导入 ..

// import './element-ui/lib/theme-chalk/index.css' // Theme UI
// import './assets/scss/index.scss' // Customize UI

App.vue,插入@import ...

<style lang="scss">
@import "element-ui/lib/theme-chalk/index.css";
@import "./assets/scss/index.scss";
#app 

应该注意 assets/scss/.. 结构中嵌套的 @import..

src
  assets
    scss
      globals
        index.scss
          // .border-black  border: 1px solid #000; ...
      mixins
        animations
            index.scss
              // ...
        breakpoints
            index.scss
              // ...
        buttons
            index.scss
              // ...
        tables
            index.scss
              // ... 
        transitions
            index.scss
              // ...
        index.scss
          // @import 'breakpoints/index.scss'; @import 'animations/index.scss'; @import 'buttons/index.scss'; @import 'tables/index.scss'; @import 'transitions/index.scss'; ...
      vars
        colors
            index.scss
                // $bg-white: #fff; $bg-white-light: #f5f5f5; $bg-black: #000; ...
        index.scss
            // @import 'colors/index.scss';
      index.scss
        // @import 'globals/index.scss'; @import 'mixins/index.scss'; @import 'vars/index.scss';

【讨论】:

以上是关于我的 .scss 文件出现 Vue.js webpack sass-loader 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vue js 组件中使用 scss 文件?

通过 Bootstrap-Vue + Webpack + Vue.js 使用自定义 SCSS

如何在 Vue.js 项目中添加字体

Vue scss 样式加载因 mocamapck 失败

scss 范围样式到vue.js中的组件

Vue.js 2.0 生产环境部署