如何在grafana数据源插件中使用外部库

我如何在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作为依赖项,而我也把mqtt文件夹放在几乎每个可以用作库文件夹的文件夹中。

我如何在grafana数据源插件中使用npm库,以便它可以工作?

提前致谢!

       

网上收集的解决方案 "如何在grafana数据源插件中使用外部库"

我遇到了同样的问题,包括我的插件的附加依赖项。 我用这个实验性的插件作为样板来解决这个问题:

  1. 你需要创build一个文件夹: src/external/
  2. src/external/mqtt.js这个文件夹下面添加你的依赖的编译的单个文件dist版本。 (实际上甚至Grafana项目都有git仓库中的供应商 )
  3. 在构build任务中,您需要将文件复制到external文件夹下,因此您的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']); 
  4. 现在你可以导入外部库: import * as mqtt from './external/mqtt';