В настоящее время я работаю над приложением, использующим VueJS, запущенным с Vite. Я нахожусь в точке, когда мне нужно бежать npm run build. Проблема в том, что при этом в папке dist не создается файл index.html, и я не уверен, что все необходимые файлы также успешно созданы (некоторые изображения отсутствуют в папке dist).
Ниже вы можете увидеть файловую структуру моего приложения (папка node_modules не указана):
| .env
| .env.dev
| .env.prod
| .eslintrc.cjs
| .gitignore
| index.html
| package-lock.json
| package.json
| README.md
| tree.txt
| vite.config.js
|
+---public
| | favicon.ico
| |
| \---img
| \---cards
| ssbm.jpg
| ssbu.jpg
|
\---src
| App.vue
| main.js
|
+---assets
| | base.css
| | logo.svg
| |
| +---datatable
| | down-arrow.png
| | equal.png
| | new.png
| | up-arrow.png
| |
| \---menu
| menu.png
|
+---components
| | Chart.vue
| | DataTable.vue
| | Home.vue
| | LineChart.vue
| | ListCompletion.vue
| | Menu.vue
| | Ranking.vue
| | Seeding.vue
| | Test.vue
| |
| \---icons
| IconCommunity.vue
| IconDocumentation.vue
| IconEcosystem.vue
| IconSupport.vue
| IconTooling.vue
|
\---router
index.js
А ниже файловая структура папки dist после запуска npm run build:
| favicon.ico
| tree.txt
|
+---assets
| main.791974cd.js
| main.ff39c5a3.css
| vendor.872756e4.js
|
\---img
\---cards
ssbm.jpg
ssbu.jpg
Более того, вот мой vite.config.js файл:
import { fileURLToPath, URL } from "url";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import dotenv from 'dotenv';
const env = process.env.VITE_APP_ENV || 'dev';
const envConfig = dotenv.config({ path: `.env.${env}` }).parsed;
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
define: {
'process.env': Object.keys(envConfig).reduce((acc, key) => {
acc[key] = envConfig[key];
return acc;
}, {}),
},
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
build: {
outDir: 'dist',
rollupOptions: {
input: 'src/main.js'
}
}
});
Я не знаю, делаю ли я что-то не так, но в любом случае заранее спасибо.
@hamidmokhtari это Vue 3; напротив Vue 2 (Webpack) индексный файл должен находиться в корневом каталоге. vitejs.dev/guide/#index-html-and-project-root
Я использую Вью 3.





Если вам не нужно специальное поведение сборки, удалите параметр build из файла vite.config.js. Это заставляет vite использовать настройки по умолчанию rollupOptions.
В качестве решения вам нужно добавить файл index.html в качестве другого входа.
// vite.config.js
build: {
outDir: 'dist',
rollupOptions: {
input: ['src/main.js', './index.html']
}
}
index.html должен храниться в «общедоступной» папке, а затем создавать проект