vue-cli 2.* 中导入公共less文件

在新版的Vue CLI 3中,如何导入公共less文件在文档里已经描述的很清楚了,但是在2.*的版本中,我没有查到相关的办法,网友的办法又相当复杂,于是我推荐给大家一个很简单的办法。

首先,会用到webpack中的资源预处理器Style Resources Loader,所以需要:


npm i style-resources-loader -D

然后在build/utils.js文件中可以找到CSS预处理器的实现方式:


  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
        })
      })
    }

    // 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)
    }
  }

  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
  return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'),
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass'),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }
}

简单的看下来就是需要哪种类型的样式就去加载对应的预处理器,因此只需要在加载less文件的情况下,多加一种Style Resources Loader预处理器就可以解决问题,所以只要加上如下代码,即可实现。


    if (loader) {
      ...
    }
    if(loader == 'less'){
      loaders.push({
          loader: 'style-resources-loader',
          options: {
              patterns: path.resolve(__dirname, '../src/assets/config/*.less')
          }
      })
    }

原文地址:https://segmentfault.com/a/1190000017073221

原文地址:https://www.cnblogs.com/datiangou/p/10124362.html

时间: 2024-10-01 23:03:22

vue-cli 2.* 中导入公共less文件的相关文章

如何在oracle中导入dmp数据库文件

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用. 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出.

Eclipse_java项目中导入外部jar文件

很多时候,在java项目中需要导入外部 .jar文件,比如:需要导入数据库连接驱动等等一些包.不熟悉eclipse的人可能会犯愁,其实很简单....步骤如下: 在需要添加外部文件的项目上   单击右键--->Build Path----->Configuer Build Path---->Libraries---->Add External JARs....... 整个过程就这么简单..... Eclipse_java项目中导入外部jar文件

vue -- 使用sass并引入公共sass文件

sass可以提高我们的开发效率,怎么在vue的项目中使用sass并且可以设置一些公共的文件呢? 使用sass 1.安装sass的依赖包 npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-dev node-sass 2.在build文件夹下的webpack.base.conf.js的rules里面添加配置 module: { rules: [ //...默认及其他 { test: /\.s

Eclipse中导入项目Js文件报错

在Eclipse中导入项目时js文件报错,解决的方法是关闭eclipse的js校验功能. 1. 选择window->preferences->JavaScript->Validator->Errors/Warning,将Enable JavaScript Sematic validation前面的钩去掉. 打开项目文件中的.project文件,把下面的代码去掉 <buildCommand> <name>org.eclipse.wst.jsdt.core.ja

向Hive中导入HDFS上文件时要注意的问题

前几天往HDFS写文件写的时候把文件名起成了.aaa.txt,这样本来是可以的,上传到HDFS也是没有任务问题的,但是将这个文件与Hive进行关联的时候却出现问题了,并不是导入的时候报错了,是导入的时候什么也没有报,默认已为成功了,但是Hive中怎么都查不到数据,反复了好多次,最后把文件名改成了aaa.txt,问题解决了,难道Hive不认以.开头的文件?其实并不是不认,因为在Linux中以.打头的文件或文件夹都是隐藏的,用ls是查不到的,只有用ll才能看到,这就是关联后,为什么在Hive中查不到

如何在MySQL中导入大容量SQL文件

在实际工作中,有时需要导入大容量sql文件到MySQL,通常有以下三种方法: (1)通过phpmyadmin,不推荐,有内存等的限制: (2)通过Navicat Premium工具运行sql,不推荐,效率低: (3)通过source命令导入,推荐,效率高,经测试,导入一个3.02G的文件耗时3分08秒: 命令格式:source "路径名"+/mytest_emp_dept.sql

QT笔记之VS2010 Qt中导入qrc资源文件

转载1:http://qimo601.iteye.com/blog/1404693 转载2:http://blog.sina.com.cn/s/blog_92cde3060101lobm.html 转载3:http://www.devbean.net/2012/08/qt-study-road-2-resource-files/ 刚开始自学QT,好多东西不是很明白,从网上搜出来一些资料,先记录下来,以方便以后学习.习惯了使用VS进行写项目,所以选择下载Qt5.2.Qt插件,在给窗口和控件添加背景

oracle 12c中导入dmp数据文件步骤

oracle版本为12c的导入步骤:1.新建用户:CREATE USER c##zj_szda IDENTIFIED BY zjdaszda DEFAULT TABLESPACE USERS QUOTA 50M ON USERS; 2.授予dba权限给zj_szdagrant dba to zj_szda 3.导入szda.dmp文件$imp c##zj_szda/zjdaszda fromuser=zj_szda touser=c##zj_szda file=f:/szda.dmp 注:1.c

JAVA基础学习--Eclipse中导入一个java文件

在编写java工程时,可能会用到别的已经成熟的java类文件,那么如何才能将目标类文件导入到工程中呢, 以下Operation.java为例. 现一个java文件源码. 1.打开eclipse,“File”->"New"->"Java Project",在Project Name中输入工程名,如:com.linwu.其他参数使用默认数据.点击Finish 2.在工程com.linwu下的Src,点击右键,选择New->Package,在name这一