Хорошо, возможно, у этого есть довольно простое объяснение, которое я не знаю, как искать, но вот моя загадка:
- , если я опубликую свой проект (
my-navigation
) в npmреестра, а затем npm установить его в другом проекте (my-vue-app
), все прекрасно работает, но! - , если я попытаюсь
npm install my-navigation
прямо из его папки на моей машине в my-vue-app, яначать получать ошибки времени выполнения, указывающие на то, что я не правильно зарегистрировал некоторые компоненты bootstrap-vue - Я даже пытался скопировать файлы в папке
node_modules/my-navigation
в папку, а затем установить npm, что - я получаю те же ошибки
Это моя главная точка входа:
import Vue from "vue";
import MyNavigation from "./MyNav.vue";
import {
BNavbar,
BNavbarBrand,
BNavbarNav,
BDropdownForm
} from "bootstrap-vue";
Vue.component("b-navbar", BNavbar);
Vue.component("b-navbar-brand", BNavbarBrand);
Vue.component("b-navbar-nav", BNavbarNav);
Vue.component("b-dropdown-form", BDropdownForm);
Vue.component("b-form-radio", BFormRadio);
import "./styles/bootstrap/mystyles.scss";
export default {
install(Vue) {
Vue.component('my-navigation', MyNavigation);
},
};
export { MyNavigation };
и в package.json
:
"main": "./dist/my-navigation.umd.js",
"module": "./dist/my-navigation.esm.js",
"unpkg": "./dist/my-navigation.min.js",
"files": [
"dist/*"
],
"dependencies": {
"core-js": "^3.3.2",
"vue": "^2.6.10"
},
"peerDependencies": {
"bootstrap-vue": "^2.0.4"
},
"scripts": {
"build-bundle": "vue-cli-service build --target lib --name my-navigation ./src/main-navbar.js"
},
Конечно, я могу обойти это путем импорта компонентов непосредственно в MyNavigation.vue
, но я хочузарегистрировать их глобально для использования в другом компоненте, который я также включу в пакет npm;и мне просто странно, что он работает через реестр, но не локально
Редактировать: кажется, что через реестр компоненты bootstrap-vue регистрируются глобально и затем доступны в my-vue-приложение, импортировав пакет npm. Это кажется плохой идеей (?), Поэтому я, вероятно, не хочу этого в любом случае.