«Требуется не определено» возникает ошибка, когда я пытаюсь импортировать файл js (с модулями узла) в мой основной электронный файл js - PullRequest
0 голосов
/ 13 февраля 2020

Это структура папок моей папки enter image description here

Привет, я новичок в электрон. js Я столкнулся с проблемой, из-за которой я не могу перехватить jquery событий в моем основном. js файле. В качестве решения я создал отдельный файл ( events. js) [теперь я могу захватить jquery events] и подключаю его к index. html. Поэтому в моем событии. js я добавил cron-job (node-cron) , чтобы проверить, работает он или нет, но когда я пытаюсь запустить проект, я получаю ошибка: требование не определено . Без какой-либо библиотеки импорта это работало. enter image description here

Это мой индекс. 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>

Это мой главный. 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();

});

это мое событие. 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();
})();

1 Ответ

0 голосов
/ 13 февраля 2020
win = new BrowserWindow({
    webPreferences: {
      nodeIntegration: true
    }
  })

Удалите webPreferences из win.loadURL и добавьте к BrowserWindow вариант. Ниже приведен пример кода для включения Node api в 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...