You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改vite.config.ts以将Svelte组件发布至NPM

配置Vite发布Svelte组件到NPM

要实现通过import MyComponent from "mycomponent"引入组件,你需要修改vite.config.ts并补充必要的项目配置,步骤如下:

1. 修改vite.config.ts

更新配置文件,添加build字段指定库模式打包,配置入口、输出格式等:

import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'

export default defineConfig({
  plugins: [svelte({ compilerOptions: { customElement: false } })],
  build: {
    lib: {
      entry: './src/main.ts', // 你的导出入口文件
      name: 'MyComponent',
      formats: ['es', 'umd'], // 支持ES模块和UMD格式
      fileName: (format) => `mycomponent.${format}.js`
    },
    rollupOptions: {
      // 排除Svelte作为外部依赖,避免打包进组件库
      external: ['svelte'],
      output: {
        // 提供全局变量,供UMD格式使用
        globals: {
          svelte: 'Svelte'
        }
      }
    }
  }
})

2. 配置package.json

必须补充以下字段,确保NPM能正确识别你的包:

{
  "name": "mycomponent", // 你的包名,需在NPM上唯一
  "version": "1.0.0",
  "type": "module",
  "main": "./dist/mycomponent.umd.js", // UMD格式入口
  "module": "./dist/mycomponent.es.js", // ES模块入口
  "exports": {
    ".": {
      "import": "./dist/mycomponent.es.js",
      "require": "./dist/mycomponent.umd.js"
    },
    "./dist/style.css": "./dist/style.css" // 若组件有样式,需导出
  },
  "files": [
    "dist",
    "src" // 可选,发布源码方便调试
  ],
  "peerDependencies": {
    "svelte": "^3.0.0 || ^4.0.0" // 声明Svelte为对等依赖
  }
}

3. 打包并发布

  • 执行打包命令:npm run build
  • 登录NPM:npm login
  • 发布包:npm publish

完成后,其他项目就能通过import MyComponent from "mycomponent"引入你的组件了。

内容的提问来源于stack exchange,提问作者bryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:55:23