vuecli3 版本vant主题样式无法修改问题以及设置less全局

问题记录,vant根据官方文档修改样式文件的时候无论如何处理都无法引入,

在这里插入图片描述
在这里插入图片描述
解决方案是吧代码块

'hack': `true; @import "${path.join(__dirname, './src/assets/style/less.less')}";

复制到Demo中然后运行Demo文件,运行然后成功。。。不知道为什么反正找不到原因,
然后把代码复制到自己代码上就成功了。。。。也不知道为什么,还是找不到原因。。。
根据官方提示已经在这里插入图片描述吧文件路径修改为绝对路径了path.join(__dirname, ‘./src/assets/style/less.less’) 但是发现还是不行,反正就复制来复制去就好了。。找不到原因和原理。。。

less设置全局,所有代码都在 vue.config.js里面,参考文档,需要注意路径 这个楼主写错地址了。。

chainWebpack: config => {
    const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
    types.forEach(type => addStyleResource(config.module.rule('less').oneOf(type)))
  },
function addStyleResource(rule) {
  rule.use('style-resource')
    .loader('style-resources-loader')
    .options({
      patterns: [
        path.resolve(__dirname, './src/assets/style/style.less'), // 需要全局导入的less
      ],
    })
}

vue.config.js完整代码


const path = require('path')
const webpack = require('webpack')

function resolve(dir) {
  return path.join(__dirname, dir)
}

// vue.config.js
module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/wechat' : '/',
  outputDir: process.env.outputDir,

  configureWebpack: {
    externals: {
      'AMap': 'AMap'
    },
    plugins: [
      // Ignore all locale files of moment.js
      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
    ]
  },

  chainWebpack: (config) => {
    config.resolve.alias
      .set('@$', resolve('src'))
      .set('@api', resolve('src/api'))
      .set('@assets', resolve('src/assets'))
      .set('@comp', resolve('src/components'))
      .set('@views', resolve('src/views'))
      .set('@layout', resolve('src/layout'))
      .set('@static', resolve('src/static'))

  },
  chainWebpack: config => {
    const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
    types.forEach(type => addStyleResource(config.module.rule('less').oneOf(type)))
  },
  
  css: {
    loaderOptions: {
      less: {
        modifyVars: {
          // less 文件覆盖(文件路径为绝对路径)
          'hack': `true; @import "${resolve('./src/assets/style/less.less')}";`
          // 'hack': `true; @import "${path.join(__dirname, './src/assets/style/less.less')}";`
        },
        javascriptEnabled: true
      }
    }
  },

  devServer: {
    // development server port 8000
    port: 8899,
    open: true,
    //   proxy: {
    //     '/api': {
    //       // target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro',
    //       target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro',
    //       ws: false,
    //       changeOrigin: true
    //     }
    //   }
  },

  lintOnSave: undefined,
  // babel-loader no-ignore node_modules/*
  transpileDependencies: []
}

function addStyleResource(rule) {
  rule.use('style-resource')
    .loader('style-resources-loader')
    .options({
      patterns: [
        path.resolve(__dirname, './src/assets/style/style.less'), // 需要全局导入的less
      ],
    })
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值