zoukankan      html  css  js  c++  java
  • Vue less全局变量预处理加载

    我们在vue中引入less:

     npm install less less-loader --save

    配置less:

    编辑 webpack.base.conf.js文件,修改module>rules添加:

     { 
            test: /.less$/,
            loader: "style-loader!css-loader!less-loader",
        
          },

    直接使用:

    <template>
        <div class="container">Test1</div>
    </template>
    <style lang="less">
    @color:#000;
    @ 100px;
    @height: 100px;
    @bg:#ccc;
    .comm-font{
        color:@color;
        font-size:20px;
    }
    .container{
         @width;
        height: @height;
        background: @bg;
        .comm-font
    }
    </style>

    这样less已经可以使用了,可是对于一个工程来说,我们希望全局使用这些变量,公共样式等

    新建文件:src/assets/common/common.less存放公共变量样式

    @color:#000;
    @ 100px;
    @height: 100px;
    @bg:#ccc;
    .common-container{
        background: @bg;
    }

    安装资源预处理器Style Resources Loader

    npm i style-resources-loader -D

    修改build/utils.js文件中方法generateLoaders

      // generate loader string to be used with extract text plugin
      function generateLoaders (loader, loaderOptions) {
        const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
    
        if (loader) {
          loaders.push({
            loader: loader + '-loader',
            options: Object.assign({}, loaderOptions, {
              sourceMap: options.sourceMap
            })
          })
        }
    
        if(loader == 'less'){
          loaders.push({
              loader: 'style-resources-loader',
              options: {
                  patterns: path.resolve(__dirname, '../src/assets/common/common.less')
              }
          })
        }
    
    
        // Extract CSS when that option is specified
        // (which is the case during production build)
        if (options.extract) {
          return ExtractTextPlugin.extract({
            use: loaders,
            fallback: 'vue-style-loader'
          })
        } else {
          return ['vue-style-loader'].concat(loaders)
        }
      }

    现在就可以在全局使用了,我们看看效果:

    <template>
        <div class="container">Test1</div>
    </template>
    <style lang="less">
    .comm-font{
        color:@color;
        font-size:20px;
    }
    .container{
         @width;
        height: @height;
        background: @bg;
        .comm-font
    }
    </style>
  • 相关阅读:
    帆软 控件内容 清除
    Spring MVC 拦截器
    jsp文件调用本地文件的方法(Tomcat server.xml 设置虚拟目录)
    Junit 4 测试中使用定时任务操作
    通过URL传递PDF名称参数显示PDF
    SpringMVC 无法访问到指定jsp页面可能的原因
    优化小技巧——复杂属性对象的read模式
    [as部落首发]网页游戏开发中的一些小技巧
    Flash Platform 游戏开发入门
    理解 Flash 中的 ActionScript 3 调试
  • 原文地址:https://www.cnblogs.com/tylz/p/11417231.html
Copyright © 2011-2022 走看看