Estou migrando meu aplicativo Laravel multisite do Mix para o Vite. Com o Mix, eu estava renomeando ativos com base no nome do diretório. É possível com o Vite?
Meu código Mix:
const { readdirSync, statSync } = require("fs");
const { join } = require("path");
const dirs = (p) =>
readdirSync(p).filter(
(f) => statSync(join(p, f)).isDirectory();
);
let brands = dirs("./brands");
brands.forEach((brand) => {
mix.js(
`brands/${brand}/resources/scripts/app.js`,
`public/scripts/${brand}.js`
).vue();
mix.sass(
`brands/${brand}/resources/styles/app.scss`,
`public/styles/${brand}.css`
);
});
Você pode fazer isso no Vite configurando dinamicamente seus pontos de entrada com base na estrutura do seu diretório. O Vite permite personalização por meio de seu
vite.config.js
arquivo, onde você pode configurar programaticamente arquivos de entrada para a compilação.Passos a seguir:
Instalar dependências Certifique-se de ter o Vite e todos os plugins necessários instalados, como
@vitejs/plugin-vue
para suporte ao Vue.npm instalar vite @vitejs/plugin-vue
Crie o script de entrada dinâmico Atualize seu
vite.config.js
para configurar dinamicamente as entradas para obuild.rollupOptions.input
campo, semelhante ao que você fez com o Mix.Análise dinâmica de diretórios no Vite Veja como você pode configurar o Vite para lidar com a lógica de renomeação com base em diretórios:
Detalhes principais
dirs
Função: Lê diretórios para identificar pastas específicas da marca.input
Objeto: Mapeia cada marcaapp.js
eapp.scss
como arquivos de entrada para o Rollup (usado pelo Vite nos bastidores).Nomenclatura de saída personalizada: use
entryFileNames
eassetFileNames
pararollupOptions.output
controlar a estrutura do arquivo de saída.Crie o projeto Execute o comando Vite build para gerar os ativos.
npm executar compilação