Node.js порождает более одного процесса, и я не уверен, почему (Windows) - PullRequest
1 голос
/ 01 мая 2019

У меня проблемы с тем, чтобы мой бот-диск node.js (Discord.js Lib) запускал только один процесс.

Как я запускаю скрипт

зависимости:

ansi-colors 3.2.4
discord.js 11.4.2
enmap 4.8.4
esm 3.2.22
nodemon 1.18.11
superagent 5.0.2
uuid 3.3.2

devDependencies:

babel-eslint 10.0.1
eslint-config-airbnb-base 13.1.0
eslint-plugin-import 2.17.2

my scripts свойство package.json файла

{
  "scripts": {
    "start": "nodemon -r esm index.js"
  }
}

примечание: esm - это модуль узла для запуска модулей es6

В index.js:


/**
 * my real index.js file has a command handler,
 * error handler and much more, as well as a few
 * Enmaps for some personal uses, but nothing that
 * would make this bot reply to itself
 */

import Enmap from 'enmap';
import { Client } from 'discord.js';
import { config } from 'dotenv';

config();

const client = new Client({ disableEveryone: true });
client.commands = new Enmap

client.on('ready', client => {
  console.log('Ready!');
}

client.on('message', message => {
  if (message.author.bot) {
    return;
  }

  /** @type {string} */
  const prefix = "-";

  if (!message.content.startsWith(prefix)) {
    return;
  }

  const args = message.content.slice(prefix.length).split(/\s+/g);
  const command = args.shift();

  const cmd = client.commands.get(command);

  if (!cmd) {
    return;
  }

  cmd.run(message, args);
}

client.login(process.env.CLIENT_TOKEN)

В моем каталоге с моим package.json

$ npm start

Кажется, что все нормально, но затем в диспетчере задач появляются процессы с 2, 3 или даже 6 узлами, и моя программа отвечает столько раз.

Если есть 3 процесса, и я запускаю событие, оно запускается 3 раза, хотя я не знаю, что могло бы вызвать это.

Теоретически, должно быть запущено только одно событие 'message'

Что я пробовал

  1. Уничтожение всех процессов node.js в моем текущем и других открытых терминалах (Git Bash)

  2. Уничтожение всех процессов в моем диспетчере задач

  3. Запуск моего стартового скрипта без вызова npm

  4. Запуск моего сценария запуска (с и без npm) в командной строке по умолчанию

...