我无法让 Epoch 图表库与电子应用程序一起使用

I Can't get Epoch charting library working with electron app

我尝试制作 electron desktop app which uses Epoch 实时图表库。我很好地获得了 Electron 应用程序 运行,并在基本节点环境中制作了一些 Epoch 图表,但是当我尝试将 Electron 和 Epoch 结合起来时,我得到了一个错误:Uncaught TypeError: $(...).epoch is not a function。

我已尝试加载 jquery.jsd3.jsepoch.js 来自 index.html 的模块(代码示例 1)或需要它们来自 javascript(代码示例 2)。

<!--Code example 1-->
<script type="text/javascript" src="./js/jquery.min.js"></script>
<script type="text/javascript" src="./js/d3.min.js"></script>
<script type="text/javascript" src="./js/epoch.min.js"></script>


//Code example 2
var $ = require('jquery');
var d3 = require('d3');
var epoch = require('epoch-charting');

我的app.js打开electron如下:

var app = require('app');
var BrowserWindow = require('browser-window');

var mainWindow = null;

app.on('window-all-closed', function() {
  if (process.platform != 'darwin') {
    app.quit();
  }
});

app.on('ready', function() {
  mainWindow = new BrowserWindow({
    width: 600,
    height: 300,
    'min-width': 500,
    'min-height': 200,
    'accept-first-mouse': true,
    'title-bar-style': 'hidden'
  });

  mainWindow.loadUrl('file://' + __dirname + '/index.html');

  mainWindow.openDevTools();

  mainWindow.on('closed', function() {
    mainWindow = null;
  });
});

和index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>Example</title>
    <link rel="stylesheet" href="./css/epoch.min.css">
  </head>
  <body>
    <div id="lineChart" class="epoch" style="width: 100%; height: 400px;border:solid 1px #C0C0C0;"></div>

    <script>
      var $ = require('jquery');
      var d3 = require('d3')
      var epoch = require('epoch-charting');

      var lineChartData = [
        {
          label: "Series 1",
          values: [ {x: 0, y: 100}, {x: 20, y: 1000}]
        },
        {
          label: "Series 2",
          values: [ {x: 20, y: 78}, {x: 30, y: 98}]
        }
      ];

      $('#lineChart').epoch({
        type: 'line',
        data: lineChartData
      });
    </script>

  </body>
</html>

您需要将 jQuery 对象传输到 window 上下文,以便将纪元图表模块传输到 "work"

global.jQuery = require('jquery');
require('epoch-charting');
jQuery('#chart').epoch({type: 'time.line', data: data});