配置 Vanilla TS Vite 项目以保持 CSS 文件分离

Tho*_*ars 5 css split bundle vite

我正在尝试使用 vanilla TS 和 Vite 4 建立一个基本(css)库。

我希望在顶层有一个主要的 js 和 css 文件,这样你就可以一次性导入整个内容。我还想要组件级导入,您可以选择仅导入组件 js + css。组合的 css 和 JS 文件工作正常;并且单个组件 JS 文件也工作正常。

目前我遇到了这样的问题:捆绑后我似乎无法在 JS 文件旁边保留 CSS 文件的独立版本。我的构建当前正在创建:

我已经阅读了 Vite 和 Rollup 的文档,但我似乎不知道如何对我的 CSS 执行与对 JS 执行的操作相同的操作。

dist
--components
----button
------button.js
--main.css
--main.js

My preferred output would be:

dist
--components
----button
------button.js
------button.css
--main.css
--main.js

In my `main.ts` I'm importing:
Run Code Online (Sandbox Code Playgroud)
import './style.scss'
import './tokens.scss'
import './components/button/button.scss'
Run Code Online (Sandbox Code Playgroud)

vite.config.js
Run Code Online (Sandbox Code Playgroud)
import { defineConfig } from 'vite'
import { resolve } from 'path'

export default defineConfig({
  build: {
    cssCodeSplit: false,
      manifest: true,
    rollupOptions: {
      output: {
        assetFileNames: () => 'main[extname]',
      }
    },
    lib: {
      formats: ['es'],
      entry: {
        main: resolve(__dirname, 'src/main.ts'),
        button: resolve(__dirname, 'src/components/button/button.ts')
      },
      name: 'CSSFramework',
      fileName: (_, fileName) => fileName === 'main' ? '[name].js' : 'components/[name]/[name].js',
    },
  },
});
Run Code Online (Sandbox Code Playgroud)

提前致谢 !