У меня есть проект Vue-2, который использует (из того, что должно быть актуально) Vue-Router, Webpack и Bootstrap-Vue. Я загружаю в Bootstrap в корне моего приложения, так как оно используется в моем приложении. В приложении я делю свои взгляды на внутренние и внешние маршруты с под-маршрутами для отдельных страниц. Все мои внешние маршруты имеют общий стиль CSS, поэтому я загружаю «external.css» в базу моих внешних маршрутов, чтобы избежать переопределения одного и того же CSS в каждом компоненте.
Проблема, с которой я столкнулся, заключается в том, что правила CSS Bootstrap имеют приоритет над моими пользовательскими правилами CSS , когда я извлекаю стили из 'external.css' , но не , когда классы определяются локально в каждом компоненте. Это не проблема стиля области, потому что правила применяются к компонентам, чуть раньше в иерархии, поэтому они перезаписываются правилами Bootstrap.
Насколько я понимаю, поскольку мой файл "external.css" включен ниже в иерархию приложения, его стили должны применяться вторыми (как если бы я использовал импорт html, а Bootstrap-Vue был выше external.css), но Интуиция о том, как webpack обрабатывает импорт, может быть отключена.
Вот соответствующий код в моем базовом файле (main.js):
import Vue from "vue";
import App from "./App";
import BootstrapVue from "bootstrap-vue";
import "bootstrap/dist/css/bootstrap.css";
import "bootstrap-vue/dist/bootstrap-vue.css";
Vue.use(BootstrapVue);
/* eslint-disable no-new */
new Vue({
el: "#app",
router,
store,
components: { App },
template: "<App/>"
});
И в моем компоненте External.vue:
<script>
export default {
name: "External"
};
</script>
<style>
@import "../../assets/css/external_styles.css";
</style>