如何在grafana数据源插件中使用外部库?
我的插件工作,但当我需要我已安装并保存到package.json文件的“mqtt”库时,我收到以下错误:
插件错误
从http://localhost:3000/public/plugins/myfirstplug/datasource.js加载http://localhost:3000/public/mqtt为“mqtt”时出错
this is what my datasource.js head looks like:
define([
'mqtt'
'angular',
'lodash',
'../core_module',
'app/core/config',
],
function (mqtt,angular, _, coreModule, config) {
'use strict';
正如我所说,package.json已经包含mqtt作为依赖,并且ive将mqtt文件夹放在几乎每个文件夹中,也可以手动用作库文件夹.
如何在grafana数据源插件中使用npm库以使其有效?
提前致谢!
最佳答案 我遇到了同样的问题,包括我的插件的额外依赖.我用
this experimental plugin作为样板来解决这个问题:
>您需要创建一个文件夹:src / external /
>在src / external / mqtt.js这个文件夹下添加已编译的单个文件dist版本的依赖项. (实际上甚至Grafana项目在git仓库中都有vendors)
>在构建任务中,您需要复制外部文件夹下的文件,因此您的Gruntfile.js应如下所示:https://github.com/NatelEnergy/grafana-plotly-panel/blob/master/Gruntfile.js
...
copy: {
...
externals: {
cwd: 'src',
expand: true,
src: ['**/external/*'],
dest: 'dist'
}
...
},
...
grunt.registerTask('default', ['clean', 'copy:src_to_dist', 'copy:pluginDef', 'copy:img_to_dist', 'copy:externals', 'babel']);
>现在您可以导入外部库:从’./external/mqtt’导入*作为mqtt;