zoukankan      html  css  js  c++  java
  • vue 单独引用sass文件

    安装文件 sass-resources-loader:

    npm install --save-dev sass-resources-loader

     修改build/utils.js:

    全局文件引入 当然只想编译一个文件的话可以省去这个函数

    function resolveResource(name) {  
      return path.resolve(__dirname, '../src/style/' + name);
    }
    function generateSassResourceLoader() {  
      var loaders = [
        cssLoader,  'sass-loader',
        {      
          loader: 'sass-resources-loader',      
          options: { // 多个文件时用数组的形式传入,单个文件时可以直接使用 path.resolve(__dirname, '../static/style/common.scss'
            resources: [resolveResource('theme.scss')]  
          }
        }
        ];   
     if (options.extract) {      
        return ExtractTextPlugin.extract({        
        use: loaders,        
        fallback: 'vue-style-loader'
        })
      } else {      
        return ['vue-style-loader'].concat(loaders)
      }
    }

     将默认的sass配置改为 generateSassResourceLoader()

    return {
        css: generateLoaders(),
        postcss: generateLoaders(),
        less: generateLoaders('less'),
        // vue-cli默认sass配置
        // sass: generateLoaders('sass', { indentedSyntax: true }), 
        // scss: generateLoaders('sass'),
        // 新引入的sass-resources-loader
        sass: generateSassResourceLoader(),
        scss: generateSassResourceLoader(),
        stylus: generateLoaders('stylus'),
        styl: generateLoaders('stylus')
    }

    改完配置后重启服务就可以在theme.scss里定义全局变量并在页面中引用了。

    需要注意的是,scss里的变量是$开头,而less里的变量是@开头。比如我想定义一个项目的主色调变量,我可以在theme.scss里这样定义:

    $main-color: #fd7a00;
  • 相关阅读:
    vue学习笔记 样式 class style(五)
    vue学习笔记 计算属性(四)
    vue学习笔记 模板语法(三)
    vue学习笔记 实例(二)
    vue学习笔记 概述(一)
    Babel指南——基本环境搭建
    手动es6编译es5(命令行)
    TrimPath
    git 远程仓库管理
    CSS左侧固定宽 右侧自适应(兼容所有浏览器)
  • 原文地址:https://www.cnblogs.com/cyj7/p/13273927.html
Copyright © 2011-2022 走看看