【发布时间】:2017-09-08 13:11:14
【问题描述】:
我正在使用 ES6 和 ChartJS 编写一个 Electron 应用程序。我已经完全设置了 babel 并且工作正常。到目前为止,我让 ChartJS 工作的唯一方法是将 (CDN) javascript 粘贴到我的 head 标签中。当我尝试以 ES6 方式导入它时(不确定如何正确导入),或者只是使用var Chart = require('chartjs'),我得到了Chart 未定义的错误。
我安装了 ChartJS
npm install chartjs --save
我尝试了各种加载 javascript 的方法,但最终都是空白。只有当我取消注释 CDN 时它才会起作用。
如何在电子应用中导入和使用 ChartJS?
我的结构
root_folder/
├── lib/
│ ├── app.js
│ ├── plot.js
│ ├── channel.js
├── src/
│ ├── app.js
│ ├── plot.js
│ ├── channel.js
├── index.html
└── main.js
在index.html 的底部,我只需调用app.js,它是渲染器的入口点。
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.min.js"></script>
</head>
<body>
...
</body>
<script>
require('./lib/app.js')
</script>
</html>
编辑 1:
我已经运行了一些测试,即使是干净文件中最简单的var Chart =
require('chartjs'); 也会自动将图表实例化为BarChart。从我一直在阅读的内容来看,它必须以某种方式在全球范围内导入,当它位于头部的 <script> 标记内时会发生这种情况。
【问题讨论】:
-
尝试使用requirejs。 requirejs.org
-
应该是
var chart = require('chartjs'),而不是var chart = require(chartjs)。请解释一下你到底是在哪里做的以及发生了什么。因为这是通常的做法。 -
@estus 啊是的,这是一个轻微的错字。我把它放在不同的位置:head 标签,body 之后,甚至在我使用
Chart模块的单个文件中(plot.js)
标签: javascript node.js ecmascript-6 electron