@douyinfe/semi-webpack-plugin

中文文档
2.105.0发布于 2026/11/12MITCommonJS近 30 天下载 4494

用于Semi Design的webpack插件,用于自定义主题,替换前缀等.

中文使用文档
文档目录7 节
  1. 导言
  2. 使用量
  3. 安装
  4. 自定义主题
  5. 替换 CSS 选择器的前缀
  6. 阿庇语Name
  7. 新建 simiPlugin( 选项)

用于Semi Design的webpack插件,用于自定义主题,替换前缀等.

导言

该插件为半设计设计,支持webpack4和webpack5设计,提供两个主要能力:

  • 自定义主题
  • 替换 CSS 选择器的前缀

注:插件通过软件包路径检测出半相关依赖性. 它支持两者 @douyinfe/semi-ui 和版本后缀软件包 @douyinfe/semi-ui-19 (亦为 semi-icons) (中文(简体) ).

使用量

安装

安装 @douyinfe/semi-webpack-plugin 作为一种发展依赖:

npm install --save-dev @douyinfe/semi-webpack-plugin
# or
yarn add --dev @douyinfe/semi-webpack-plugin

自定义主题

Semi Design使用Scs变量来取出上千个 Design Tokens. 您可以通过此插件替换 Token 实现主题定制 . 更多信息

您可以通过三种方式自定义主题:

  • 自定义主题的 npm 软件包
  • 您工程中的本地 Scs 文件
  • 将密钥值对参数传递到插件 优先从低到高.

通过 npm 软件包

要使用 npm 软件包, 您需要自定义主题通过 半设计系统.完成定制后,Semi DSM将为您生成 npm 软件包,然后您可以像这样使用.

// webpack.config.js
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;

module.exports = {
    // ...
    plugins: [
        new SemiPlugin({
            theme: '@douyinfe/semi-theme-default'
        })
    ]
    // ...
};

通过本地 Scs 文件

您可以检查您在 半网点。 。 。 .

  • step: 添加本地文件
// local.scss
$font-size-small: 16px;

  • step2: 配置网络包
// webpack.config.js
const path = require('path');
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;

module.exports = {
    // ...
    plugins: [
        new SemiPlugin({
            include: path.join(__dirname, 'local.scss')
        })
    ]
};

通过参数

// webpack.config.js
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;

module.exports = {
    // ...
    plugins: [
        new SemiPlugin({
            variables: {
                "$font-size-small": '16px'
            }
        })
    ]
};

替换 CSS 选择器的前缀

Semi Design使用的 CSS 选择器默认前缀为半( 例如, ), .semi-button。 您可以通过此插件替换前缀 .

// webpack.config.js
const SemiPlugin = require('@douyinfe/semi-webpack-plugin').default;

module.exports = {
    // ...
    plugins: [
        new SemiPlugin({
            prefixCls: 'custom'
        })
    ]
    // ...
};

然后得到替换的 CSS 选择器(例如, .custom-button) (中文(简体) ).

阿庇语Name

新建 simiPlugin( 选项)

选项。前缀Cls

类型 : String

CSS选择器的前缀.

选项。 主题

类型 : String 或者说 Object

当类型是字符串时,它代表自定义主题npm的名称. 你用得着 半设计系统 改为自定义主题.

选项。主题。name

性能与类型相同 options.theme 是字符串.

选项。包含

类型 : String

本地 Scs 文件的绝对路径 .

选项。变量

类型 : Object

Scs 代号的密钥值对.

选项.omitCss

类型 : Boolean

在汇编阶段,是否排除 css 引用. 用于解决Next.js不支持在第三方代码中全面引入cs的问题. 看这个 讨论情况。 。 。 .

选项。webpack Context。 普通模块

类型 : webpack NormalModule

选项

类型 : String

取出cs的网包加载器的路径.

选项

类型 : Object

取出cs的网包加载器的选项.

选项

类型 : (loaderList:any[])=>any[]

您可以通过使用此选项覆盖加载器来自定义 Webpack 如何处理半相关样式 。 该函数将接收默认加载器列表( 包括选项. extractCss Options), 您应该返回新的加载器列表 。 最佳的做法只是将您的加载器添加到列表中,而不是删除或更改默认加载器,因为里面有一些核心逻辑.

在 Webpack@ 5 中, 需要通过 api 获取一些钩子 NormalModule.getCompilationHooks。但在某些情况下,网页包不会安装,例如Next.js。 因此,用户需要在"NormalModule"中作为参数通过.

版本与发布记录

@douyinfe/semi-webpack-plugin 共发布 590 个版本,首次发布于 2021/10/25;过去 12 个月发布了 67 个版本。

版本发布日期距今
2.105.0latest2026/11/121 天前
2.104.02026/10/091 个月前
2.103.02026/09/012 个月前
2.102.02026/07/313 个月前
2.38.4-alpha.2-3117-31202026/07/293 个月前
2.101.12026/07/203 个月前

其他发布通道:test → 2.38.3-alpha.4,patch-table → 2.38.3-alpha.2-patch-table,patch-tooltip → 2.70.1-alpha.1-patch-tooltip,2.58.0-hotfix-aria → 2.58.0-hotfix-aria,2.55.5-hotfix-aria → 2.55.5-hotfix-aria,hotfix → 2.38.3-alpha.2-patch-2254。

关于 @douyinfe/semi-webpack-plugin 的常见问题

@douyinfe/semi-webpack-plugin 是什么?

用于Semi Design的webpack插件,用于自定义主题,替换前缀等.

如何安装 @douyinfe/semi-webpack-plugin?

在项目目录运行 npm install @douyinfe/semi-webpack-plugin,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:webpack(^5.77.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@douyinfe/semi-webpack-plugin 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/douyinfe__semi-webpack-plugin 是否存在。

@douyinfe/semi-webpack-plugin 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@douyinfe/semi-webpack-plugin 可以商用吗?

@douyinfe/semi-webpack-plugin 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@douyinfe/semi-webpack-plugin 的下载量有多少?

根据 npm 官方下载统计,@douyinfe/semi-webpack-plugin 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,494 次,日均约 150 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@douyinfe/semi-webpack-plugin 还在维护吗?

最新版本 2.105.0 发布于 2026/11/12(1 天前);至今共发布 590 个版本,其中过去 12 个月发布了 67 个;首次发布于 2021/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。