我正在使用vite-plugin-ssr在vite-react上构建一个MPA,目的是在开发和构建过程中生成html。
插件在很大程度上完成了生成html的工作,但我也需要在dist中使用它来保持文件的结构。
它现在的作用:
my-app/
ââ node_modules/
ââ dist/
â ââ client/
| | index.html
| | ââ assets/
| | | ââ chunks
| | | ââ enties
| | | ââ static
| | ââ about
| | | ââ index.html
| | ââ pageone
| | | ââ index.html
| | ââ pagetwo
| | | ââ index.html
| | ââ pagethree
| | | ââ index.html
â ââ server
ââ pages/
| | ââ about/
| | | ââ images
| | | ââ about.css
| | | ââ index.page.jsx
| | ââ index
| | ââ pageone
| | ââ pagetwo
| | ââ pagethree
ââ renderer
ââ server
ââ package.json
ââ vite.config.js
每个页面中的结构与about页面中的相同。
我希望它生成的内容:
my-app/
ââ node_modules/
ââ dist/
â ââ client/
| | index.html
| | ââ shared/ (keep assets for the purpose of shared files)
| | | ââ fonts
| | | ââ css
| | | ââ js
| | ââ about
| | | ââ images (inside images for this page )
| | | ââ css (inside about.css )
| | | ââ js (inside about.js )
| | | ââ index.html
| | ââ pageone
| | | ââ images
| | | ââ css
| | | ââ js
| | | ââ index.html
| | ââ pagetwo
| | | ââ images
| | | ââ css
| | | ââ js
| | | ââ index.html
| | ââ pagethree
| | | ââ images
| | | ââ css
| | | ââ js
| | | ââ index.html
â ââ server
ââ pages/
| | ââ about/
| | | ââ images
| | | ââ about.css
| | | ââ index.page.jsx
| | ââ index
| | ââ pageone
| | ââ pagetwo
| | ââ pagethree
ââ renderer
ââ server
ââ package.json
ââ vite.config.js
这可能吗?或者也许我不应该使用ssr插件,但vite开箱即用的ssr会更适合这个目的吗?
我尝试在我的vite配置中为汇总选项执行以下操作:
build: {
assetsDir: 'shared',
rollupOptions: {
output: {
assetFileNames: (assetInfo) => {
let extType = assetInfo.name.split('.').at(-1);
if (/png|jpe?g|svg|gif|tiff|bmp|ico/i.test(extType)) {
extType = 'img';
}
return `slideone/${extType}/[name]-[hash][extname]`;
},
chunkFileNames: 'slideone/js/[name]-[hash].js',
},
},
}
但它将所有img css和js作为一堆移动到了slideone中(正如我硬编码的那样),并保存在共享文件夹的子文件夹条目中。。这是我走得最远的一次。
ââ dist/
â ââ client/
| | index.html
| | ââ shared/
| | | ââ enties
| | ââ about
| | | ââ images
| | | ââ css (inside all css )
| | | ââ js (inside all js )
| | | ââ index.html
| | ââ pageone
| | | ââ images
| | | ââ css
| | | ââ js
| | | ââ index.html
| | ââ pagetwo
| | | ââ images
| | | ââ css
| | | ââ js
| | | ââ index.html
| | ââ pagethree
| | | ââ images
| | | ââ css
| | | ââ js
| | | ââ index.html