Vue.js 使用vue cli 3将vue依赖项捆绑到web组件生成中

Vue.js 使用vue cli 3将vue依赖项捆绑到web组件生成中,vue.js,webpack,vuejs2,web-component,vue-cli-3,Vue.js,Webpack,Vuejs2,Web Component,Vue Cli 3,我正在使用vue cli 3将我的vue组件捆绑到web组件中,使用的命令类似于: package.json “build:wc”:“vue cli服务构建--目标wc异步--名称webcomponent全局'src/components/*/*.vue' 这一切都可以正常工作,但是根据您需要一个全局vue依赖项才能工作,因为vue运行时被排除在生成之外: 注意:该捆绑包依赖于页面上全局可用的Vue 这迫使我使用两个脚本标记包括web组件,如下所示: <script src="https:

我正在使用vue cli 3将我的vue组件捆绑到web组件中,使用的命令类似于:

package.json

“build:wc”:“vue cli服务构建--目标wc异步--名称webcomponent全局'src/components/*/*.vue'

这一切都可以正常工作,但是根据您需要一个全局vue依赖项才能工作,因为vue运行时被排除在生成之外:

注意:该捆绑包依赖于页面上全局可用的Vue

这迫使我使用两个脚本标记包括web组件,如下所示:

<script src="https://unpkg.com/vue"></script>
<script src="path/to/my-element.js"></script>

<!-- use in plain HTML, or in any other framework -->
<my-element></my-element>


是否有任何方法可以告诉vue cli将vue依赖项包含到webcomponent捆绑包中,以便只需要包含一个脚本即可使web组件正常工作。

您可以通过传递--inline vue标记来内联vue,如下所述:

那么为什么需要将其构建为web组件呢?我认为排除Vue是这种模式的一个特点,而不是缺陷。不过,这可能会有所帮助。这是一项功能,因为它可以防止vue运行时被捆绑到您的每个web组件中,从而减少捆绑包的大小和加载时间。这是您99%的时间都想要的,就我的生产环境而言,我不能这样做。谢谢你的问题,我来看看。我也有同样的情况。我们应用程序的某个部分已用于我所在组织中的其他人。我们正在将这一部分外部化,以便其他人可以使用它,但是我们不希望要求他们自己导入Vue。我们不希望用户知道Vue正在内部使用。我们将创建各种适配器(angular、react等),人们可以在他们的应用程序中透明地使用这些适配器,而不知道我们的部件最终是vue组件。