Nik*_*erg 7 web-component vue.js
我正在构建一个独立的 Vue 组件并在另一个 Vue 项目中使用它。
构建组件:
vue build --target wc --inline-vue --name user-menu user-menu.vue
Run Code Online (Sandbox Code Playgroud)
到目前为止,它是一个简单的组件,没有功能,只有标记。
然后,在主项目的package.json中:
"devDependencies": {
"user-menu": "git+https://........user-menu.git",
Run Code Online (Sandbox Code Playgroud)
然后,在 main.js 中:
import Vue from "vue";
import UserMenu from "user-menu"
....
Vue.use(UserMenu);
const app = new Vue(config).$mount("#root");
window.app = app;
Vue.use(UserMenu);
Run Code Online (Sandbox Code Playgroud)
它说:
user-menu.js?e2ea:1446 Uncaught ReferenceError: Vue 未定义
连续
module.exports = Vue;
Run Code Online (Sandbox Code Playgroud)
但Vue CLI 3 文档说:
在Web组件模式下,Vue是外部化的。这意味着即使您的代码导入了 Vue,该捆绑包也不会捆绑 Vue。该包将假设 Vue 在主页上作为全局变量可用。
知道如何解决这个问题吗?
最后我得出了以下解决方案:根本不应该构建该组件。像这样导入源文件就足够了:
import UserMenu from "user-menu/user-menu";
Run Code Online (Sandbox Code Playgroud)
注意路径应该指向导入的vue文件,而不仅仅是指向文件夹。但必须跳过扩展名“vue”。最终的应用程序将把它们构建在一起。
| 归档时间: |
|
| 查看次数: |
608 次 |
| 最近记录: |