vue 组件发布到npm后,Failed to mount component

问题描述

用vue-cli 3创建了组件,发布到npm,后引用时报错:
Failed to mount component: template or render function not defined.

相关代码

hellocomp.js

export default {
  name: 'HelloComp',

  render(h) {
    return (
      <div class="h-comp">
        Hello from Component
      </div>
    )
  }
}

index.js

import HelloComp from './hellocomp.js'

HelloComp.install = function(Vue, options = {}) {
  Vue.component(HelloComp.name, HelloComp)
}

if (typeof window !== 'undefined' && window.Vue) {
  Vue.component(HelloComp.name, HelloComp)
}

export default HelloComp

webpack.config.js

module.exports = {
  entry: './src/index.js',
  ...

然后npm publish,
在项目中引用Test.vue

<template>
    <div>
      <hello-comp />
    </div>
</template>

import HelloComp from 'hello-comp'

@Component({
  components: {
    HelloComp 
  }
})
export default class Test extends Vue {
  ...

启动后,就在console看到如下错误

[Vue warn]: Failed to mount component: template or render function not defined.

具体是哪里出了问题吗?
如果不发布到npm,直接放在项目中,是正常的

阅读 3.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题