无法将 npm 包添加到 nuxt js [vue-star-rating]

Posted

技术标签:

【中文标题】无法将 npm 包添加到 nuxt js [vue-star-rating]【英文标题】:can't add npm package to nuxt js [vue-star-rating] 【发布时间】:2020-06-29 08:05:31 【问题描述】:

我是 nuxt js 的新手,所以当我尝试添加 npm 包时它不起作用,这些都是试验。

star-raing.js

import Vue from 'vue'
import StarsRatings from 'vue-star-rating'
Vue.use(StarsRatings)

nuxt.config.js

    plugins: [ src: '~/plugins/star-rating.js', mode: 'client' ],
    build: 
    /*
     ** You can extend webpack config here
     */
    extend(config, ctx) ,
    transpile: ['star-rating']
  

it shows these errors

[Vue warn]: The client-side rendered virtual DOM tree is not matching server-rendered content. This 
is likely caused by incorrect html markup, for example nesting block-level elements inside <p>, or 
missing <tbody>. Bailing hydration and performing full client-side render.


[Vue warn]: Unknown custom element: <stars-ratings> - did you register the component correctly? For         
recursive components, make sure to provide the "name" option.

found in

---> <Deals> at components/Home/Deals.vue
<Home> at pages/index.vue
<Nuxt>
<Default> at layouts/default.vue
<Root>

【问题讨论】:

你能给我们看看你的 home/deals.vue 吗? 星级评分组件未注册。组件:'星级',VueStarRating.default 感谢帮助???? 【参考方案1】:

嘿,我有同样的问题,这是答案:

1.在您的插件中 (star-rating.js):

import Vue from 'vue'
import VueStarRating from 'vue-star-rating'
Vue.component('star-rating', VueStarRating);

2.不要忘记mode:'client' 在您的nuxt.config.js


    src: '~/plugins/star-rating.js', mode: 'client'
,

3.finally 在您的.vue 文件中,您可以简单地使用:

<star-rating v-model="rating">
</star-rating>

ps:这适用于 vuejs 2x

顺便说一句,如果你想获得评分道具,你可以简单地访问它:

export default 
    name:"example",
    data() 
        return 
            rating: 0,
        
    ,    

【讨论】:

你提到的折旧模式:nuxtjs.org/docs/2.x/configuration-glossary/configuration-mode请使用s-s-r:false【参考方案2】:

您应该在您的 star-rating.js 中注册它,如下所示:

import Vue from 'vue';
import StarsRatings from 'vue-star-rating';

Vue.component('StarsRatings', StarsRatings);

【讨论】:

以上是关于无法将 npm 包添加到 nuxt js [vue-star-rating]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 npm 包中的 JS 文件包含到 Nuxt.js 中的单独页面

Nuxt Vue 中的 Splidejs

无法将 vue 相关的 npm 包包含到我的 Laravel + Vue 项目中

如何将 Naver Analytics 添加到 Nuxt.js SPA 应用程序?

将 npm 包导入 Vue.js 单文件组件

nuxt之服务端渲染