javascript – 如何在grafana datasource-plugin中使用外部库

如何在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;

点赞