vue文件的script部分能调用vue.config.js里设置的loaderOptions的值吗, 怎么调用?

发布于 2022-09-12 03:27:30 字数 520 浏览 16 评论 0

使用一些UI组件的时候,为了能自定义主题色,可以在vue.config.js里这样设置:

module.exports = {
  css: {
    loaderOptions: {
      less: {
        javascriptEnabled: true,
        modifyVars: {
          'primary-color': '#254184', // 全局主色
        }
      }
    }
  }
}

这样能在<style lang="less">中使用该变量:

a {
    color: @primary-color;
}

但是有时候,我需要在js中设置样式,比如绘制canvas。有什么办法可以让我能在js中使用primary-color这个变量呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

堇色安年 2022-09-19 03:27:30

直接import进来使用即可

import config from '../vue.config.js';

export default {
  data() {
    return {
      primaryColor: config.css.loaderOptions.less.modifyVars['primary-color'],
    };
  },
与酒说心事 2022-09-19 03:27:30

用 Vue 的环境变量:https://cli.vuejs.org/zh/guid...

// .env
VUE_APP_PRIMARY_COLOR=#254184
// vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      less: {
        javascriptEnabled: true,
        modifyVars: {
          'primary-color': process.env.VUE_APP_PRIMARY_COLOR
        }
      }
    }
  }
}
// sample.js

const primaryColor = process.env.VUE_APP_PRIMARY_COLOR;
薄暮涼年 2022-09-19 03:27:30

特意评论过来感谢,我用ant-vue时配置主题怎么也不生效,看了你问题中用

css: {
    loaderOptions: {
      less: {}
    }
}

这种结构配置一下,果然配置主题可以生效了,之前按照官方文档中间加options或者lessOptions都不行,原来去掉就可以了,虽然暂时还不知道为什么,但是感谢一下,之前一度想一点一点写样式覆盖,现在主题配置生效就方便多了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文