在vue2.0中使用sass

2018-04-26  本文已影响0人  洋洋的小栈
1、安装sass的依赖包

npm install node-sass --save-dev
npm install sass-loader --save-dev //sass-loader依赖于node-sass
npm install style-loader css-loader --save-dev

2、打开webpack.base.config.js在loaders里面加上添加配置
 module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: vueLoaderConfig
      },
      {
        test: /\.scss$/,  //-------------------------------------添加此处
        loaders: ["style", "css", "sass"]
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
      },
      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }
      },
      {
        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('media/[name].[hash:7].[ext]')
        }
      },
      {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
        }
      }
    ]
  }
3、在vue文件style标签声明一下

<style lang="scss" scoped="" type="text/css"></style>

4、在vue文件引入sass文件遇到的一些问题
<style  lang="stylus">
      //使用 ../来匹配路径可以正确导入
      @import '../assets/css/_mixin.scss'; //正确
      //使用 alias 中 配的 @ 就不能用了
      @import '@/assets/css/_mixin.scss';  //错误
</style>

解决方法:@import '~@/assets/scss/helpers/_mixin';

原因:CSS loader 会把把非根路径的url解释为相对路径, 加~前缀才会解释成模块路径。

上一篇 下一篇

猜你喜欢

热点阅读