美文网首页
vue-cli创建的项目中如何引入全局less变量

vue-cli创建的项目中如何引入全局less变量

作者: 小枫学幽默 | 来源:发表于2019-12-12 13:48 被阅读0次

    背景

    通常我们在用less时,会定义诸多变量,来减轻更改时的负担,但是在vue开发时,如果我们有一个variable.less文件,在组件中使用变量时不得不写入这个文件的引用,如下图

    @assets:"~@/assets";
    @import "@{assets}/css/variable.less";
    

    组件那么多,一个一个都要引用,想想都觉得麻烦,有没有好的办法呢?

    方法

    vue-cli2.x 版本创建的项目如何解决?

    • 1 安装 sass-resources-loader
    npm install sass-resources-loader --save-dev
    
    • 2 修改构建文件
      新增的部分开始 ----- 新增的部分结束
    // 项目根目录下 build/utils.js
    
      // generate loader string to be used with extract text plugin
      function generateLoaders (loader, loaderOptions) {
        var loaders = [cssLoader];
        if (loader) {
          loaders.push({
            loader: loader + "-loader",
            options: Object.assign({}, loaderOptions, {
              sourceMap: options.sourceMap
            })
          });
        }
    
      //---------------新增的部分开始-------------------
        if (loader == "less") {
          loaders.push({
            loader: "sass-resources-loader",
            options: {
              resources: path.resolve(__dirname, "../src/assets/css/variable.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);
        }
    
      }
    
    

    vue-cli3中修改方式

    • 1 安装 所需的包
    npm i style-resources-loader vue-cli-plugin-style-resources-loader -D
    
    • 2 配置根目录下vue.config.js
    module.exports = {
         ...
         pluginOptions: {
            "style-resources-loader": {
                preProcessor: "less",
                patterns: [
                  //这个是加上自己的路径,
                  //注意:试过不能使用别名路径
                  path.resolve(__dirname, "./src/assets/variable.less")
                 ]
             }
         }
         ...
        }
    

    相关文章

      网友评论

          本文标题:vue-cli创建的项目中如何引入全局less变量

          本文链接:https://www.haomeiwen.com/subject/klftnctx.html