目录

一、问题

二、解决方法

三、总结


一、问题

1.从git上拉下来代码,并且npm install安装了代码需要的依赖后,运行代码报错:

 error in ./node_modules/_mqtt@4.3.7@mqtt/lib/client.js

2.完整错误如下:

  大概意思是下面 那一段代码需要合适的 loader来解析。可是仔细一看会发现报错的文件是   下载的依赖文件 node_modules中的,一般依赖中的代码我们是不需要更改的(别人开发的组件或插件直接使用即可)。猜测极有可能是版本不匹配,某些变量或用法不兼容。

ERROR  Failed to compile with 1 errors                                                                                                                      下午5:57:57

 error  in ./node_modules/_mqtt@4.3.7@mqtt/lib/client.js

Module parse failed: Unexpected token (118:38)
You may need an appropriate loader to handle this file type.
|               if (alias) {
|                 packet.topic = ''
|                 packet.properties = { ...(packet.properties), topicAlias: alias }
|                 debug('applyTopicAlias :: auto assign(use) topic: %s - alias: %d', topic, alias)
|               } else {

 @ ./node_modules/_mqtt@4.3.7@mqtt/lib/connect/index.js 3:19-39
 @ ./src/store/modules/websocket.js
 @ ./src/store/modules \.js$
 @ ./src/store/index.js
 @ ./src/main.js
 @ multi ./node_modules/_webpack-dev-server@2.11.5@webpack-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

二、解决方法

1.降低mqtt的版本

  如上面错误中所示:我下载的依赖中的 mqtt的版本是  4.3.7

  1)进入下载依赖的官网 npm

  2)搜索mqtt,并且切换到 versions 标签下面。 

       如图1所示, 2.18.9版本才是稳定、安全;   而4.3.7是最新版本。cnpm或npm install时一般会下载最新版本的。

      注:一般下载软件或插件等,都要选择稳定版的,降低因不兼容带来的问题

图1

 3)ctrl+c退出当前的错误,指定版本号 为2.18.9重新下载 mqtt

      cnpm install mqtt@2.18.9

 4) 下载完成后,重新运行程序,不再报错,正常启动了   

三、总结

1.遇到错误不要惊慌,盲目百度,要学会自己分析解决问题。其实我没有解决问题之前也是在百度,结果发现没有人写类似的问题,才放弃搜索,开始自己思考问题。经过仔细思考后,发现上述解决办法。

2.遇到 Module parse failed:xxxx(即node_modules文件夹中的东西报错)一般是由于版本过高或过低,可以去官网查看相应模块,下载稳定的模块即可解决

/*

希望对你有帮助!

如有错误,欢迎指正,谢谢!

*/

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐