0.0.7 • Published 9 months ago

@plugin-light/webpack-loader-inject-dynamic-style-web v0.0.7

Weekly downloads
-
License
-
Repository
github
Last release
9 months ago

动态样式注入 - H5

注入不同类型的样式文件。

如何使用

安装

pnpm add @plugin-light/webpack-loader-inject-dynamic-style-web -D

vue.config.js 中添加如下设置:

const { LOADER as injectDynamicStyleWeb } = require('webpack-loader-inject-dynamic-style-web')';

module.export = {
  chainWebpack(config) {
    config.module
      .rule('inject-dynamic-style')
      .test(/(css\/base\.scss)$/)
      .use(injectDynamicStyleWeb) 
      .loader(injectDynamicStyleWeb)
      .end();
  }
}

参数

export type IInjectDynamicStyleWebOptions = {
  // 顶层元素,,默认 body
  topElement?: string;

  // 处理的平台, 默认 ['h5']
  platforms?: Array<string>;
};

说明

loader 会在base.scss文件中注入以下样式,使得页面可以动态显示不同类型的样式。

const styleStr = styleList.map(item => `
&--type-${item} {
  @import './${item}.scss';
}`).join('\n');

const content = `
/* #ifdef H5 */
body.${componentName} {
  ${styleStr}
}
/* #endif */
`;