Subscribe on changes!

使用vite库模式打包的组件,在html esm 下无法使用

avatar
Dec 20th 2022

Vue version

3.2.45

Link to minimal reproduction

https://github.com/ddmy/vite-build-qs

Steps to reproduce

错误复现路径:

  1. vite.config.js 配置 库模式,导出HelloWorld.vue组件
  2. index.html中采用script type="module"的方式使用该组件,没有正确的响应

https://cdn.bootcdn.net/ajax/libs/vue/3.2.45/vue.esm-browser.js (提示组件引入方式不对)和 https://cdn.bootcdn.net/ajax/libs/vue/3.2.45/vue.esm-browser.prod.js (没有报错信息)都不行

What is expected?

组件可正常展示,且传入props能正常展示

What is actually happening?

组件不可用

System Info

No response

Any additional comments?

No response

avatar
Dec 20th 2022
<script type="module">
-    import { createApp } from "https://cdn.bootcdn.net/ajax/libs/vue/3.2.45/vue.esm-browser.js"
+    import { createApp } from "vue"
    import HelloWorld from './HelloWorld.es.js'
    console.log('HelloWorld', HelloWorld)
    const app = createApp({
        components: {
            HelloWorld
        },
        setup () {
            return {}
        }
    }).mount('#app')
</script>
avatar
Dec 21st 2022
<script type="module">
-    import { createApp } from "https://cdn.bootcdn.net/ajax/libs/vue/3.2.45/vue.esm-browser.js"
+    import { createApp } from "vue"
    import HelloWorld from './HelloWorld.es.js'
    console.log('HelloWorld', HelloWorld)
    const app = createApp({
        components: {
            HelloWorld
        },
        setup () {
            return {}
        }
    }).mount('#app')
</script>

你好,我想知道你是如何运行html目录下的index.html的?我这边通过http-server启动后,页面所使用的HelloWorld组件并不能正常加载,而是直接加载出了<helloworld msg="Vite + Vue" msg2="hhhhhh" msg3="5555"></helloworld>

avatar
Dec 21st 2022

你如果是直接在独立的 HTML 页中通过 <HelloWorld> 方式调用组件的话,请改成 <hello-world>。HTML 是大小写不敏感的。

avatar
Dec 23rd 2022

你如果是直接在独立的 HTML 页中通过 <HelloWorld> 方式调用组件的话,请改成 <hello-world>。HTML 是大小写不敏感的。

包括自组件自身传递的props也需要用'-'分割