好的,也许这有一个非常简单的解释,我不知道如何查找,但这是我的难题:
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组件正在全局注册,然后可以通过导入npm包在my-vue-app中使用。这似乎是个坏主意(?),所以我可能还是不想这么做。
答案 0 :(得分:0)
npm pack
产生一个.tgz
文件https://docs.npmjs.com/cli/pack.html
从此文件而不是从dist
导入与从注册表中的程序包导入具有相同的行为。
仍不确定npm创建此文件的原因或作用,但这至少回答了从本地/存储库导入时如何模仿已注册软件包的行为的问题。