自定义elementui的前缀

自定义elementui的前缀

教程

1、安装插件:postcss-change-css-prefix

2、在根目录下创建postcss.config.js文件,并写入如下内容:

postcss.config.js

const addCssPrefix = require(\'postcss-change-css-prefix\')
 
module.exports = {
  plugins: [
    addCssPrefix(
      prefix: \'el-\',
      replace: \'gp-\'
    )
  ]
}
  • 上面的 gp- 就是自定义的前缀

3、在vue.config.js文件中新增以下内容:

chainWebpack(config) 
        config.module
            .rule(\'change-prefix\')
            .test(/\\.js$/)
            .include.add(path.resolve(__dirname, \'./node_modules/element-ui/lib\'))
            .end()
            .use(\'change-prefix\')
            .loader(\'change-prefix-loader\')
            .options(
                prefix: \'el-\',
                replace: \'gp-\'
            )
            .end()
    ,
实例

1、postcss.config.js

const addCssPrefix = require('postcss-change-css-prefix')
module.exports = {
  plugins: [
    addCssPrefix({
      prefix: 'el-',
      replace: 'ym-',
    }),
  ],
}

2、vue.config.js

const { createChainWebpack,} = require('./library/build/index.ts')

chainWebpack(config) {
  createChainWebpack(process.env.NODE_ENV, config)
  config.module
    .rule('vue')
    .use('vue-loader')
    .tap((options) => {
      options.compilerOptions = {
        ...(options.compilerOptions || {}),
        isCustomElement: (tag) => /^micro-app/.test(tag),
      }
      return options
    })
    .end()
},

3、library\build\index.ts

const { createVuePlugin } = require('./vuePlugins/index.ts')
const { createChainWebpack } = require('./chainWebpack/index.ts')

module.exports = {
  createVuePlugin,
  createChainWebpack,
}

4、library\build\chainWebpack\index.ts

// @ts-ignore
const appName = process.env.VUE_APP_NAME
const { createGzip } = require('./gzip/index.ts')
const { createBanner } = require('./banner/index.ts')
const { createBuild7z } = require('./build7z/index.ts')
const { createSvgSprite } = require('./svgSprite/index.ts')
const { createOptimization } = require('./optimization/index.ts')
const { createSourceInjector } = require('./sourceInjector/index.ts')
const { createImageCompression } = require('./imageCompression/index.ts')
const {
  build7z,
  buildGzip,
  imageCompression,
} = require(`../../../src/app/${appName}/config`)

module.exports = {
  // @ts-ignore
  createChainWebpack: (env, config) => {
    config.resolve.symlinks(true)
    createBanner(config)
    createSvgSprite(config)
    if (env === 'production') {
      if (build7z) createBuild7z(config)
      if (buildGzip) createGzip(config)
      if (imageCompression) createImageCompression(config)
      createOptimization(config)
    }
    if (env === 'development') config.devtool('cheap-module-source-map')
    createSourceInjector(config)
  },
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值