qrac / minista

Static site generator with 100% static export from React and Vite.
https://minista.qranoko.jp
168 stars 12 forks source link

アセットバンドル機能を再設計 #73

Closed qrac closed 1 year ago

qrac commented 2 years ago

SPAのimportを利用していた機能なので作り直し。

import "../assets/index.css"

export default function () {
  return (
    <section>
      <h1>index</h1>
    </section>
  )
}
qrac commented 2 years ago

srcから読み込んだCSSもバンドルに反映されてしまう。JSは反映されず紛らわしいので非推奨の書き方。

import { Head } from "minista"

export default function () {
  return (
    <>
      <Head>
        <link rel="stylesheet" href="/src/assets/index.css" />
      </Head>
      <section>
        <h1>index</h1>
      </section>
    </>
  )
}
qrac commented 2 years ago

Vite v3で、CSSだけassetFileNamesがidではなくfilenameになってしまうバグがあるので bundle.css 用のファイル名変換を一時的に増やす必要あり

chunkInfoにも含まれていない。

chunkInfo: {
  name: '../../packages/minista/dist/server/bundle.js',
  type: 'asset',
  source: '/* vite internal call, ignore */'
}
chunkInfo: {
  name: '../../packages/minista/dist/server/bundle.css',
  source: 'h1{color:red}\n',
  type: 'asset'
}