Webpack + Discord.js + Electron

问题描述

构建Webpack时遇到问题。

discord客户端未初始化。

这是我在Electron上的第一个应用程序。请帮助。

错误:未捕获的TypeError:i(...)。客户端不是webpack文件中的构造函数

我寻求帮助,我很高兴得到一个好的答复。下面,我将提供所有文件代码this problem look like in browser

main.js

const path = require('path');
const url = require('url');
const {app,browserWindow} = require('electron');
const {sendMessage,isValidForm} = require('./back.js');


let win;

function createWindow() {
    win = new browserWindow({
        width: 1200,height : 800,icon : __dirname + "/img/icon.png"
    });

    win.loadURL(url.format({
        pathname: path.join(__dirname,"/html/index.html"),protocol: 'file:',slashes: true
    }));

    win.webContents.openDevTools();

    win.on('closed',() => {
        win = null;
    });
}

app.on('ready',createWindow);

app.on('window-all-closed',() => {
    app.quit();
});

webpack.config.js

var path = require('path');
  module.exports = {
    entry: './src/components/main.js',output: {
      filename: 'bundle.js',path: path.resolve(__dirname,'dist')
    },externals: [
      (function () {
        var IGnorES = [
          'electron','fs'
        ];
        return function (context,request,callback) {
          if (IGnorES.indexOf(request) >= 0) {
            return callback(null,"require('" + request + "')");
          }
          return callback();
        };
      })()
    ]
  }; 

back.js

const discord = require('discord.js');
const bot = new discord.Client();


bot.login("token")
function isValidForm (first,second) {
    if(first.value == "" || second.value == "") {
        return alert('Одна из форм не заполненна')
    }
    sendMessage(first.value,second.value);
}

function sendMessage (channelName,message) {
    const channel = bot.channels.cache.find(ch => ch.name === channelName);
    if(!channel) {
        return alert("Канал с таним названием не найден!");
    }
    channel.send(message);
}

module.exports = {sendMessage,isValidForm};


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)