我在练习谷粒商城P83时,选择分类时触发向后端请求选择分类catId绑定的品牌数据,发现前端控制台报错:
"PubSub is not definded",找不到pubsub。
因为缺少pubsub包,所以开始安装此包。
于是在网上一顿搜索猛如虎,搞了差不多3个小时。总算安装好pubsub-js。
我在vscode的terminal输入安装命令:
bash
npm install --save pubsub-js
报错信息如下:
bash
npm ERR! path D:\study_codes\renren\renren-fast-vue\node_modules\chromedriver
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node install.js
npm ERR! Downloading https://chromedriver.storage.googleapis.com/2.27/chromedriver_win32.zip
npm ERR! Saving to C:\Users\tangfq\AppData\Local\Temp\chromedriver\chromedriver_win32.zip
npm ERR! node:events:498
npm ERR! throw er; // Unhandled 'error' event
npm ERR! ^
npm ERR!
npm ERR! Error: read ECONNRESET
npm ERR! at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20)
npm ERR! Emitted 'error' event on ClientRequest instance at:
npm ERR! at TLSSocket.socketErrorListener (node:_http_client:442:9)
npm ERR! errno: -4077,
npm ERR! code: 'ECONNRESET',
npm ERR! syscall: 'read'
npm ERR! }
npm ERR! A complete log of this run can be found in:
npm ERR! D:\Program Files\nodejs\node_cache\_logs\2024-05-30T14_24_34_229Z-debug-0.log
我开始看这个报错还以为是chromedriver_win32.zip没有下载,然后去下载这个包放在对应位置,没卵用!又搜索errno:-4077,网上说是我没得管理员权限,我又用管理员打开vscode或cmd窗口,继续试安装命令:
bash
npm install --save pubsub-js
报相同的错。于是又继续搜索,看网上好多blog都说执行上面的命令一把就安装成功,若安装不成功,就换做用cnpm(cnpm和npm区别就是cnpm是淘宝的镜像地址,npm是国外的镜像地址)来安装,试了也不行。最终看了一篇blog说镜像地址不对,于是我重新设置代理的镜像地址:
bash
npm install -g cnpm --registry=https://registry.npmmirror.com
设置完地址后执行install命令成功了!
bash
npm install --save [email protected]
**注意:**我看网上blog说安装的pubsub-js版本号:1.6.0-1.8.0,若不在这个区间会出现兼容性问题。若大家有时间可以验证正确性。
安装成功界面如下:

在前端项目中的package.jsons查看pubsub-js的版本如下:

然后在项目src下的main.js中引用:
javascript
import PubSub from 'pubsub-js'
Vue.prototype.PubSub = PubSub

在vscode的terminal中运行:npm run dev,运行界面效果如下:

还有另外一篇blog说强行安装pubsub-js,这种方法我没试过。若你们按这种方式还搞不定,可以试下这种:
Vue项目安装和引入pubsub-js出现的问题:ERROR Failed to compile with 1 error.This dependency was not found-CSDN博客
参考地址: