PrimeVue Toast 组件错误:无法解析 */toast 中的“./ToastMessage”

Posted

技术标签:

【中文标题】PrimeVue Toast 组件错误:无法解析 */toast 中的“./ToastMessage”【英文标题】:PrimeVue Toast Component Error: Can't resolve './ToastMessage' in */toast 【发布时间】:2020-05-15 00:25:55 【问题描述】:

我目前正在使用 vuejs 开始一个新项目,并希望将 primevue 用于某些组件。 总的来说,我对 VueJS 的了解并不是最好的,因为我才刚刚开始使用它。 我的应用程序有一个基于 webpack 的构建,并配置了 vue-loader,这就是 primevue 的安装方式。

我尝试使用 Toast-Component,但是当从 'primevue/toastservice' webpack 导入 Toast 时会抛出以下两个错误:

./node_modules/primevue/components/toast/Toast.vue?vue&type=script&lang=js& 中的错误 (./node_modules/vue-loader/lib??vue-loader-options!./node_modules/primevue/components/ toast/Toast.vue?vue&type=script&lang=js&)

找不到模块:错误:无法解析“*/node_modules/primevue/components/toast”中的“./ToastMessage”

@ ./node_modules/primevue/components/toast/Toast.vue?vue&type=script&lang=js& (./node_modules/vue-loader/lib??vue-loader-options!./node_modules/primevue/components/toast /Toast.vue?vue&type=script&lang=js&) 11:0-42 86:24-36

@ ./node_modules/primevue/components/toast/Toast.vue?vue&type=script&lang=js&

@./node_modules/primevue/components/toast/Toast.vue

@./node_modules/primevue/toast.js

@./src/main.js

./node_modules/primevue/components/toast/Toast.vue?vue&type=style&index=0&lang=css& 中的错误 (./node_modules/vue-loader/lib??vue-loader-options!./node_modules/primevue/ components/toast/Toast.vue?vue&type=style&index=0&lang=css&) 97:0

模块解析失败:意外令牌 (97:0)

文件是用这些加载器处理的:

*./node_modules/vue-loader/lib/index.js

您可能需要一个额外的加载器来处理这些加载器的结果。

|

|

-> .p-吐司

|位置:固定;

|宽度:20em;

@ ./node_modules/primevue/components/toast/Toast.vue?vue&type=style&index=0&lang=css& 1:0-118 1:134-137 1:139-254 1:139-254

@./node_modules/primevue/components/toast/Toast.vue

@./node_modules/primevue/toast.js

@./src/main.js

我导入组件如下:

import Vue from "vue";
import App from "./App/App.vue";
import Toast from 'primevue/toast';
import ToastService from 'primevue/toastservice';

Vue.use(ToastService);
Vue.component('Toast', Toast);

new Vue(
  render: h => h(App)
).$mount("#app");

我已经尝试在我的 App.js 或其他我主要想使用这些 Toast 的文件中导入/使用“Toast”组件但没有成功。

如果我省略 Toast 一切正常,那么 ToastService 似乎没问题。

所以如果有人使用primevue并且也遇到了这个问题并找到了解决方案,我提前感谢大家。

【问题讨论】:

【参考方案1】:

我为您的第二个错误提供了解决方案,但不确定如何解决您的第一个“无法解决”错误,因为我仍在解决这个问题。

你的 webpack 配置是什么样的?您是否为 CSS 文件指定规则?如果组件使用 <style> 块,你需要告诉 webpack 如何处理。

.css 文件指定一个规则,它也适用于.vue 文件中的<style> 块。没有这个,webpack 不知道如何解析这些块。

因此,请确保您的 webpack.config.js rules 部分包含以下 CSS 部分(或类似内容):

rules: [
    
        test: /\.vue$/,
        use: 'vue-loader'
    ,
    // the below will apply to both plain `.css` files AND `<style>` blocks in `.vue` files
    
        test: /\.css$/,
        use: [
            'vue-style-loader',
            'css-loader'
        ]
    
]

还要确保在你的 package.json 中安装相关工具。

我解决了类似的问题,请查看我的question and answer 了解更多详细信息。

【讨论】:

感谢您的回答!您对 webpack 配置的建议解决了第二个错误。我只需要将它与 scss 和 sass 规则正确结合。第一个对我来说仍然没有意义,但我已经完全切断了 primevue 并用 vuetify 替换它,因为它更适合我的应用程序。【参考方案2】:
npm install mitt

解决了第一个问题。它包含在 primevue 包的 devDependencies 中,但由于某些原因它没有安装。

【讨论】:

以上是关于PrimeVue Toast 组件错误:无法解析 */toast 中的“./ToastMessage”的主要内容,如果未能解决你的问题,请参考以下文章

无法在引导程序 5 toast 中读取 null 的属性(读取“defaultPrevented”)

toast 无法解析,activitynotfoundexception 无法解析为类型

PrimeVue - 全面升级!免费开源优雅好用的 Vue3 UI 组件库,可选主题超多

Vue 3单元测试无法到达元素

应用 Primevue 主题

ASP.NET Core 依赖注入错误:尝试激活时无法解析服务类型 - 调用视图组件时出现错误 [重复]