【发布时间】:2019-02-10 04:49:47
【问题描述】:
我可以将 Vue-CLI 3 构建命令 (vue-cli-service build --target wc --name foo ./src/App.vue) 生成的 web 组件用作独立的
像这样的网页中的组件:
<script src="https://unpkg.com/vue"></script>
<script src="./foo.js"></script>
<foo></foo>
但是当我在另一个 Vue 项目中导入这个组件时:
import Vue from 'vue'
import foo from 'foo'
我收到此错误:
Uncaught ReferenceError: Vue is not defined
在 web 组件模式下,Vue 是外化的。这意味着即使您的代码导入了 Vue,该包也不会捆绑 Vue。该包将假定 Vue 在主机页面上作为全局变量可用。
但是当你想在另一个项目中使用 web 组件时,它并没有说明如何解决这个问题。
你有什么想法吗?
【问题讨论】:
-
尝试从 npm 安装 vue。
npm install vue -
@RuChernChong 我之前安装了它,它工作正常!此错误仅针对此特定组件。
-
所以你在另一个组件中有一个全局
import Vue from 'vue'和另一个import Vue from 'vue'? -
@RuChernChong 是的,但无论是否导入 Vue,我都会收到此错误。
-
您应该使 vue 可用于 WebComponent 使用的窗口 ` import Vue from 'vue';窗口.Vue = Vue; ` 你也可以在你的 webpack 配置中将 vue 设为外部,然后在外部包含脚本。Web 组件并不适合在 webpack 项目中导入,最好直接使用 UMD 模块或源代码
标签: javascript vue.js vuejs2 vue-component vue-cli-3