@vue-vine/rspack-loader

Rspack loader for Vue Vine
81,775 1,442
Install
npm install @vue-vine/rspack-loader
Latest Version:1.7.27
License:MIT
Last Updated:Oct 16, 2026
Links: GitHub  ·  npm
Maintainer: shen_qing_chuan

@vue-vine/rspack-loader

English

npm version npm downloads

Vue Vine 的 Rspack 加载器。

TIPS: 🧪 Beta 功能 Rspack 支持目前处于 beta 阶段。

请安装 beta 版本并报告您遇到的任何问题。

安装

pnpm add -D @vue-vine/rspack-loader@beta

使用

注意:对于大多数用户,我们推荐使用 Rsbuild 插件,它提供了更简单、更高层次的集成方式。仅在需要细粒度控制 loader 配置时才直接使用此 loader。

在 rspack.config.ts 中配置 loader:

import { defineConfig } from '@rspack/cli'
import { rspack } from '@rspack/core'

// 目标浏览器配置,用于代码转译
const targets = ['last 2 versions', '> 0.2%', 'not dead']

export default defineConfig({
  module: {
    rules: [
      // 使用链式 loader 处理 .vine.ts 文件
      // Loader 从右到左(从下到上)执行:
      // 1. @vue-vine/rspack-loader:将 Vine 组件转换为 TypeScript
      // 2. builtin:swc-loader:将 TypeScript 转换为 JavaScript
      {
        test: /\.vine\.ts$/,
        resourceQuery: { not: [/vine-style/] }, // 排除样式虚拟模块
        use: [
          {
            loader: 'builtin:swc-loader',
            options: {
              jsc: {
                parser: { syntax: 'typescript' },
              },
              env: { targets },
            },
          },
          {
            loader: '@vue-vine/rspack-loader',
          },
        ],
      },
      // 处理 Vine 样式虚拟模块
      {
        resourceQuery: /vine-style/,
        use: [
          {
            loader: '@vue-vine/rspack-loader/style-loader',
          },
        ],
        type: 'css',
      },
      // ...其他 rules
    ],
  },
  plugins: [
    // Vue 运行时所需
    new rspack.DefinePlugin({
      __VUE_OPTIONS_API__: JSON.stringify(true),
      __VUE_PROD_DEVTOOLS__: JSON.stringify(false),
      __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: JSON.stringify(false),
    }),
  ],
})

为什么需要链式 loader?

Vine 编译器输出的是 TypeScript 代码,需要转换为 JavaScript。Rspack 内置的 builtin:swc-loader 用于进行 TypeScript 到 JavaScript 的转换,通过 Rust 原生实现提供了卓越的性能。

resourceQuery: { not: [/vine-style/] } 确保 Vine 样式块中的 CSS 内容不会被 TypeScript/JavaScript loader 处理。

许可证

MIT License © 2024-PRESENT ShenQingchuan

Related Packages

@vizejs/rspack-plugin

High-performance Rspack plugin for Vue SFC compilation powered by Vize

60,208 908
node-esm-loader

A webpack-like loader for Node

48,094 8
vue-button-spinner

A simple button spinner.

16,948 35
@ikaros-cli/ikaros

`@ikaros-cli/ikaros` 是 ikaros 的核心包,包含 CLI、配置系统、插件系统、默认 Rspa...

3,149 4
http-vue-loader

Load .vue files directly from your html/js. No node.js environment, no build ste...

52,627 1,477

Version History

Version Released License
1.7.27 MIT
1.7.26 MIT
1.7.25 MIT
1.7.24 MIT
1.7.23 MIT
Pre-releases (12)
Version Released License
1.7.20-beta.1 MIT
1.7.19-beta.1 MIT
1.7.18-beta.1 MIT
1.7.17-beta.1 MIT
1.7.16-beta.1 MIT