Node.js产生的不仅仅是一个进程,而且我不确定为什么(Windows)

时间:2019-05-01 00:02:29

标签: node.js npm npm-scripts

我无法让我的node.js Discord Bot(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

我的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次。

从理论上讲,仅应触发一个“消息”事件

我尝试过的

  1. 杀死当前和其他打开的终端机(Git Bash)中的所有node.js进程

  2. 在我的任务管理器中杀死所有进程

  3. 运行我的启动脚本而不调用npm

  4. 在默认命令提示符下运行我的启动脚本(带有和不带npm)

0 个答案:

没有答案