#javascript #vue.js #babeljs #laravel-mix #element-ui
#javascript #vue.js #babeljs #laravel-mix #element-ui
Вопрос:
Я создал простой веб-сайт, используя Vue и Element UI. Я использовал Laravel Mix для компиляции своего кода.
Во время разработки значки отображаются, но когда я запускаю «npm run prod» и загружаю его на страницы Github, они не отображаются.
Это мой webpack.mix.js
let mix = require('laravel-mix');
mix.js('src/js/app.js', 'public/')
.sass('src/styles/app.scss', 'public/')
.babelConfig({})
.disableNotifications();
Я использую компоненты по требованию и следовал этому документу, поэтому мой корневой файл vue выглядит следующим образом:
import Vue from 'vue'
import store from './vuex'
import router from './vue-router'
import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import lang from 'element-ui/lib/locale/lang/es'
import locale from 'element-ui/lib/locale'
locale.use(lang)
Vue.use(Loading.directive);
Vue.component(Select.name, Select)
Vue.component(Option.name, Option)
Vue.component(Input.name, Input)
Vue.component(Icon.name, Icon)
new Vue({
el: '#app',
router,
store,
});
Следуя тому же документу, я добавил файл .babelrc в свой корневой каталог, но мне не удалось заставить его работать с предустановкой es2015
, поэтому я использовал @babel/preset-env
вместо этого. На самом деле я не знаю, как правильно использовать Babel, поэтому вся ошибка может быть здесь, но idk.
{
"presets": [["@babel/preset-env", { "modules": false }]],
"plugins": [
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}
Я заметил что-то странное, когда я запускаю npm run prod, на выходе отображается что-то вроде этого:
Папка fonts и необходимые шрифты копируются в мой корневой каталог, поэтому, когда он находится на Github, он отправляет запрос в корневой домен, корневую папку, правильный URL-адрес должен быть завершен (я полагаю?) /h3lltronik.github.io/my-site/
, Но он включен /h3lltronik.github.io/
.
На всякий случай, если это необходимо, я использую такие значки:
<el-input v-model="search" prefix-icon="el-icon-search" class="filter_input element-input bordered" @input="onChangeSearch"
placeholder="Search for a country..."></el-input>
И это мой index.html
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>H3lltronik</title>
<link rel="stylesheet" href="./public/app.css">
</head>
<body>
<div id="app" :class="modeClass">
<transition name="el-fade-in">
<router-view class="content-body"></router-view>
</transition>
</div>
<script src="./public/app.js"></script>
</body>
</html>