Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

193
Vistas
After using vite+vue3 to build the project and importing roslibjs, an error is reported

I use vue3, when I create a project with vite, I import the roslibjs library and get an error using one of the functions, as shown below. But when I try to use vuecli to create a project, after importing the same library, everything is fine. enter image description here

// vite created 'vite-app' project
npm init vite@latest
cd vite-app
npm instal --save roslib
// vuecli created 'vuecli-app' project
vue create vuecli-app
cd vuecli-app
npm install --save roslib
<script setup>
import ROSLIB from "roslib";
let ws_address = '127.0.0.1:9090'
let connected = false;
const ros = new ROSLIB.Ros({
    url: ws_address,
})
const connect = () => {
    ros.on("connection", () => {
        connected = true;
        console.log("Connected!");
    });
    ros.on("error", (error) => {
        console.log("Error connecting to websocket server: ", error);
    });
    ros.on("close", () => {
        connected = false;
        console.log("Connection to websocket server closed.");
    });
}
const disconnect = () => {
    ros.close();
}
</script>
<template>
    <div>
        <p class="text-success" v-if="connected">Connected!</p>
        <p class="text-danger" v-else>Not connected!</p>
  
        <input type="text" v-model="ws_address" />
        <br />
        <button @click="disconnect" class="btn btn-danger" v-if="connected">Disconnect!</button>
        <button @click="connect" class="btn btn-success" v-else>Connect!</button>
    </div>
</template>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

I'm not sure what Vue CLI + Webpack does differently for roslib to work in the browser.

However, in the browser, you should use the pre-built versions of roslib (where the Node-specific constructs are transpiled away) per the docs:

If you use roslib in a browser, all the classes will be exported to a global variable called ROSLIB. If you use nodejs, this is the variable you get when you require('roslib')

Import the roslib/build/roslib.js script, which sets window.ROSLIB:

<script setup>
import 'roslib/build/roslib';

const ros = new window.ROSLIB.Ros({
  url: ws_address,
});
⋮
</script>

demo

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda