node_modules w Vue

0

Witam, mam taki problem, że pakiet npm nie daje się używać w vue, a bez vue czysty js z tym pakietem w node działa. Chciałbym użyć tego pakietu https://www.npmjs.com/package/modern-rcon w vue. Standardowa implementacja nie działa

<template>
  <div>
    <input type="text" v-model="command" />
    <button @click="test">SEND</button>
  </div>
</template>

<script>
export default {
  name: "rcon_client",
  data(){
    return{
      command: "",
    }
  },
  methods: {
   async test(){
      const Rcon = require('modern-rcon');

      var rcon = new Rcon('localhost', 'haslo');

      rcon.connect().then(() => {
        return rcon.send('help'); // That's a command for Minecraft
      }).then(res => {
        console.log(res);
      }).then(() => {
        return rcon.disconnect();
      })
  }
  }
}
</script>

<style lang="scss" scoped>
</style>

screenshot-20190706113136.png

Czy ktoś wie jak poprawnie używać pakietów npm w vue?

0

@Aqu: Dzięki, zrobiłem tak jak na stacku

<template>
  <div>
    <input type="text" v-model="command" />
    <button @click="test">SEND</button>
  </div>
</template>

<script>
import Rcon from 'modern-rcon';

export default {
  name: "rcon_client",
  components:{
    'Rcon': Rcon,
  },
  data(){
    return{
      command: "",
    }
  },
  methods: {
   async test(){
      var rcon = new Rcon('localhost', 'haslo');

      rcon.connect().then(() => {
        return rcon.send('help'); // That's a command for Minecraft
      }).then(res => {
        console.log(res);
      }).then(() => {
        return rcon.disconnect();
      })
  }
  }
}
</script>

<style lang="scss" scoped>
</style>

ale mam błąd Unhandled promise rejection TypeError: "net.createConnection is not a function" w node_modules/modern-rcon jest plik rcon.js a w nim pierwsza linijka const net = require('net'); może on nie zaimportowuje tego pakietu

edit: dodałem pakiet https://www.npmjs.com/package/net npm install --save net ale nie pomogło.

0

To jest chyba paczka przystosowana do działa w środowisku node.js.

Czy nie próbujesz przypadkiem odpalać tego w webie?

0

Próbujesz użyć moduł nodejs w przeglądarce. To nie będzie działać... Nodejs ma sporo własnych modułów do obsługi sieci, plików itd. one będą działać tylko w Nodejs, a przeglądarce ich nie ma. Tak samo jest w drugą stronę, w przeglądarce jest fetch, a w node nie ma i trzeba używać czegoś innego.

Napisz sobie backend w Node i w przeglądarce pobieraj wynik wywołania odpowiedniej metody z backendu, wtedy będzie śmigać.

0

@some_ONE: @Haskell: uruchamiam to przez komendę npm run serve , tak jak się uruchamia aplikacje vue.

1

Tą komendą odpalasz jedynie lokalny serwer developerski do serwowania aplikacji vue, natomiast to przeglądarka interpretuje kod JS, a nie nodejs. Stąd nie możesz używać w kodzie dowolnych modułów ściągniętych z npm chyba, że jest napisane, że będą działać pod przeglądarką.

1 użytkowników online, w tym zalogowanych: 0, gości: 1