vue项目 build时报错。.node_modules\neo-async\async.js:16 throw new Error(‘Callback was already called.‘)

博主近期完成了Vue项目的实战并尝试优化与上线,但在使用VueUI界面打包时遇到问题,项目无法正常打包。然而,通过命令行模式打包却能顺利完成。已经尝试过网上的解决方案但未见效。目前问题待解,期待有经验的开发者分享解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、前言

        最近二周一直在通过bilibili上的vue项目实战视频跟着做项目,做完了后,在跟进项目优化和项目上线时出现了一个错误,直到现在也没有解决,就是在vue UI界面上打包项目打包不了,通过命令行模式打包项目,又可以打包!o((⊙﹏⊙))o

二、报错信息

三、参考资料

stackoverflow网站中类似的报错信息

已经尝试了网上提到的重装等方法,并不生效!o(╥﹏╥)o,在此记录!希望以后有机会能知道原因

如果有大大已经找到解决办法了,如果可以,请在评论分享,非常谢谢!

### 使用 Vue.js 和 MQTT.js 连接到 MQTT 服务器 为了实现 Vue.js 应用程序与 MQTT 服务器之间的通信,可以按照如下方法操作: #### 安装依赖库 首先,在项目中安装 `mqtt` 包作为客户端库来处理消息队列遥测传输协议(MQTT)。 ```bash npm install mqtt --save ``` #### 创建 MQTT Service 文件 接着创建一个服务文件用于管理所有的 MQTT 订阅和发布逻辑。这有助于保持组件的整洁,并使代码更易于维护。 ```javascript // src/services/mqttService.js import { createNamespacedHelpers } from 'vuex'; const mqtt = require('mqtt'); let client; export function initMqtt(brokerUrl, clientId) { client = mqtt.connect(brokerUrl, {clientId}); client.on('connect', () => console.log(`Connected to broker ${brokerUrl}`)); client.on('error', (err) => console.error(err)); return client; } export function subscribe(topic, callback) { if (!client || !client.connected) throw new Error('Not connected'); client.subscribe(topic); client.on('message', (receivedTopic, message) => { const payload = JSON.parse(message.toString()); callback(receivedTopic, payload); }); } ``` 此部分展示了如何初始化一个新的异步 MQTT 客户端实例[^1]。 #### 配置 Vuex Store 来存储状态 如果应用程序较大,则可能希望利用 Vuex 存储来自订阅的主题更新的状态数据。 ```javascript // store/index.js import Vue from 'vue'; import Vuex from 'vuex'; import { initMqtt, subscribe } from '../services/mqttService'; Vue.use(Vuex); export default new Vuex.Store({ state: {}, mutations: {}, actions: { async initialize({ commit }) { try { await initMqtt(process.env.VUE_APP_MQTT_BROKER_URL, process.env.VUE_APP_CLIENT_ID); // 假设有一个名为 "sensorData" 的主题被监听 subscribe('sensorData', (topic, data) => { commit('updateSensorData', data); }); } catch(error){ console.error("Failed initializing MQTT", error); } }, }, }) ``` 上述配置允许通过环境变量设置代理 URL 和客户端 ID,从而提高灵活性和安全性[^2]。 #### 组件内调用 Action 初始化连接 最后一步是在应用加载触发该 action 方法完成实际的网络请求。 ```javascript // App.vue 或者其他入口组件 <template> <!-- ... --> </template> <script> export default { name: 'App', mounted() { this.$store.dispatch('initialize'); } }; </script> ``` 这样就完成了整个流程:从建立到接收信息的过程都封装好了,可以在任何地方轻松地访问这些功能而无需重复编写相同的代码片段。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值