“未定义要求"当我尝试将js文件(带有节点模块)导入到我的主要电子js文件时,会出现错误 [英] "require is not defined" error comes when i try to import js file (with node modules) to my main electron js file

查看:23
本文介绍了“未定义要求"当我尝试将js文件(带有节点模块)导入到我的主要电子js文件时,会出现错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的文件夹文件夹结构

This is my folder folder structure

您是 electron.js 的新手,我遇到了一个问题,即我无法在 main.js 文件中捕获jquery事件.作为解决方案,我创建了一个单独的文件( events.js )[现在可以捕获jquery事件],并将其连接到 index.html .因此,在我的 event.js 中,我添加了一个 cron-job(node-cron)来检查其是否正常运行,但是当我尝试运行一个项目时,我得到了一个错误消息,提示需求未定义.没有任何导入库,它就可以工作.

Hi im new to electron.js I was facing for an issue where that i cannot capture jquery events in my main.js file. As a solution i created a separate file (events.js)[now i can capture jquery events] and i connect it to index.html. So in my event.js i added a cron-job(node-cron) to check whether it's working or not, but when i try to run a project i get an error saying require is not defined. Without any import library , it worked.

这是我的 index.html

    <body>
    <div style="margin-top:15px" class="container">
        <div class="row">
            <div class="col-xs-3">
                <a class="btn btn-info btn-sm btn-block" href="./layouts/settings.html" id="menu-btn-settings"
                    role="button">Settings</a>
                <a class="btn btn-info btn-sm btn-block" href="./layouts/health.html" id="menu-btn-health"
                    role="button">System Health</a>
                <a class="btn btn-info btn-sm btn-block" href="./layouts/abc-now.html" id="menu-btn-abc-now"
                    role="button">Sync Now</a>
                <a class="btn btn-info btn-sm btn-block" href="./layouts/abc-customer.html" id="menu-btn-abc-user"
                    role="button">Sync
                    Customer</a>
                <a class="btn btn-info btn-sm btn-block" href="./layouts/about.html" id="menu-btn-about"
                    role="button">About</a>
            </div>
            <div class="col-xs-9">
                <div id="alert-msg"></div>
                <div id="content"></div>
            </div>
        </div>
    </div>

    <!-- Insert this line above script imports  -->
    <script>if (typeof module === 'object') { window.module = module; module = undefined; }</script>

    <script src="./assets/js/jquery-3.4.1.min.js"></script>
    <script src="./assets/js/bootstrap.min.js"></script>
    //
    <script src="./main.js"></script>
    <script src="./app/events.js"></script>
    <script src="./assets/js/require.js"></script>


    <script>if (window.module) module = window.module;</script>


</body>

这是我的main.js

 app.on('ready', function () {
    win = new BrowserWindow({});
    win.loadURL(url.format({
        pathname: path.join(__dirname, 'index.html'),
        protocol: 'file:',
        slashes: false,
        webPreferences: {
            nodeIntegration: true,
        },
    }));

    win.on('closed', function () {
        app.quit();
    });

    win.webContents.openDevTools();

});

这是我的 event.js

(function () {
    'use strict';
    var CronJob = require('cron').CronJob;
    var job = new CronJob('* * * * * *', function () {
        console.log('You will see this message every second');
    }, null, true, 'America/Los_Angeles');
    job.start();
})();

推荐答案

win = new BrowserWindow({
    webPreferences: {
      nodeIntegration: true
    }
  })

win.loadURL 删除 webPreferences 并添加到 BrowserWindow 选项.以下是在 BrowserWindow

Remove webPreferences from win.loadURL and add to BrowserWindow option. The below is the sample code to enable the Node api in BrowserWindow

// Create the browser window.
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  // and load the index.html of the app.
  mainWindow.loadFile('index.html')

这篇关于“未定义要求"当我尝试将js文件(带有节点模块)导入到我的主要电子js文件时,会出现错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆