标签: plugins

为 Nodejs 应用程序编写插件的教程?

我发现很难找到一个关于为 Nodejs 应用程序编写插件的好教程(不适用于 NodeJS 本身!)。

我想做的是,对于一些nodejs应用程序,我想用我编写的几个js文件来扩展它的功能。

例如,我正在使用 karma runner 来运行 JS 单元测试,但是现有的报告器不能很好地满足我们的日志记录要求。所以我编写了自己的记者并将其放在单独的js文件中,例如myreporter.js。现在要使用它,我必须将 myreporter.js 添加karma 代码的文件夹中,并将类似这样的行添加到karma 的reports.js中:

exports.myreporter = require('./reporters/myreporter');
Run Code Online (Sandbox Code Playgroud)

这在我的机器上运行得很好,但是,对于 CI 服务器来说这可能是一个问题。我不想在我们自己的项目中包含所有业力代码。我想从服务器上的公共存储库安装 karma,并且只在我们的项目中包含 myreporter.js,这样我们就不必为每个构建安装修改后的 karma。我只想安装 myreporter.js 作为构建的 karma 插件。

我不确定这是否足够清楚。所以我需要的是为 karma 或任何现有的 Nodejs 应用程序编写一个插件。我应该仍然能够像以前一样使用该应用程序,同时我可以使用该插件带来的新功能。

我看过这个关于peerdependency的页面。这是否意味着如果我将peerdependency或karma添加到myreporter.js的package.json文件中,一旦我安装了myreporter包并运行karma,karma就会选择新的reporter?

感谢您对这个长问题的任何帮助。

更新:

尝试了对等依赖,看来 karma 0.8.6 没有选择我的插件。看起来从 0.9 karma 开始使用di,我猜那是它开始支持插件的时候。然而,0.9.3仍然不是一个稳定的版本。

plugins node.js npm karma-runner

1
推荐指数
1
解决办法
3836
查看次数

如何仅显示wordpress插件内容主页?

我创建了一个简单的 WordPress 插件。为了在页面上显示它,我使用它来调用函数

function facebook_live_counter_main_content(){
[html markups here]
add_action ('wp_head', 'facebook_live_counter_main_content');
Run Code Online (Sandbox Code Playgroud)

可以正常工作了 但我只想显示插件操作主页。我需要您的帮助,如何调用仅显示插件操作主页的功能。

问候-

费萨尔·伊姆兰

wordpress plugins

1
推荐指数
1
解决办法
2515
查看次数

使用帖子类型填充 ACF 复选框

我正在尝试使用 WP 网站的各种帖子类型填充复选框 ACF 字段。这是针对插件的,因此帖子类型会根据安装位置而有所不同。

默认情况下,该插件使用页面和帖子作为帖子类型,但需要为用户提供选项以使用复选框来选择网站上的其他 CPT。如何使用站点上所有 CPT 的列表填充复选框字段。这是我当前的 PHP 代码部分,用于在插件中加载字段

array (
    'key' => 'field_56e6d87b6c7be',
    'label' => 'Add to Custom Post Types',
    'name' => 'fb_pixel_cpt_select',
    'type' => 'checkbox',
    'instructions' => 'Select which Custom Post Types you would like to use.',
    'required' => 0,
    'conditional_logic' => 0,
    'wrapper' => array (
        'width' => '',
        'class' => '',
        'id' => '',
    ),
    'choices' => array (
    ),
    'default_value' => array (
    ),
    'layout' => 'vertical',
    'toggle' => 0,
),
Run Code Online (Sandbox Code Playgroud)

php wordpress plugins custom-post-type advanced-custom-fields

1
推荐指数
1
解决办法
6343
查看次数

在cordova ios应用程序中将字段添加到info.plist

我需要创建自定义插件,将条目添加到 cordova/angular4 iOS 应用程序的 info.plist 中。(在这种情况下,如果按下主页按钮,则退出应用程序)

我需要添加行:

<key>UIApplicationExitsOnSuspend</key>
<true/>
Run Code Online (Sandbox Code Playgroud)

这是我写的插件的内容(可能不正确,因为我无法测试它)。

<config-file target="*-Info.plist" platform="ios" parent="UIApplicationExitsOnSuspend">
<array>
  <boolean><true/></boolean>
</array>
</config-file>
Run Code Online (Sandbox Code Playgroud)

需要什么才能将此插件“导入”到 config.xml 中,以便每次我执行cordova build iosplist 文件时都会有我需要的条目?

我读过这篇文章,但不明白它是如何完成的。

通过 Cordova config.xml 将条目添加到 iOS .plist 文件

Cordova:从plugin.xml修改*-Info.plist

plugins ios cordova angular

1
推荐指数
1
解决办法
2934
查看次数

Jenkins Gerrit 触发器插件提供编码的 GERRIT_CHANGE_COMMIT_MESSAGE 和 GERRIT_EVENT_COMMENT_TEXT

Jenkins Gerrit 触发器插件为GERRIT_CHANGE_COMMIT_MESSAGEGERRIT_EVENT_COMMENT_TEXT提供编码值

我如何解密它 - 使其易于阅读?

plugins comments commit-message jenkins gerrit-trigger

1
推荐指数
1
解决办法
1646
查看次数

ubuntu 16 安装 gstreamer 但在任何地方都找不到 gstreamer-plugins-base-1.0.pc 文件

(在我的 mac pro 上使用 ubuntu 16 0n。)

要集成 gstreamer 和 pocketsphinx,我需要三个 .pc 文件,如官方网站所述:

  • gstreamer-1.0.pc
  • gstreamer-base-1.0.pc
  • gstreamer-plugins-base-1.0.pc

我启动一个新的空 ubuntu 18。通过安装 gstreamer

$ sudo apt-get install libgstreamer1.0-dev
Run Code Online (Sandbox Code Playgroud)

但在上一个命令之后,三个重要的 .pc 文件中仅存在两个。如果我 cd 到/usr/并运行:

sudo find . -print | grep -i 'gstreamer-plugins-base-1.0'
Run Code Online (Sandbox Code Playgroud)

终端返回空(未找到)。同时, sudo find . -print | grep -i 'gstreamer-base-1.0'

sudo find . -print | grep -i 'gstreamer-1.0'
Run Code Online (Sandbox Code Playgroud)

会给我正确的路径。

丢失的gstreamer-plugins-base-1.0.pc文件在哪里?谢谢。

如果只有两个而不是三个.pc 文件,pocketsphinx 的配置将不起作用。

plugins apt-get gstreamer pocketsphinx

1
推荐指数
1
解决办法
1829
查看次数

WordPress 短代码返回另一个 php 页面

当我返回一些东西时,我的自定义 WordPress 插件短代码就可以工作。但我想返回另一个 php 页面,其中包含 html。

这是我的map.php

<?php 
function example($map){
    echo "Hello!"; 
    }
?>


Run Code Online (Sandbox Code Playgroud)

我试过这样

add_shortcode( 'map_shortcode', 'map_shortcode' );
function map_shortcode() {
    wp_enqueue_style( 'my-css' );
    wp_enqueue_style( 'meyer-reset' );
    wp_enqueue_style( 'tooltipster-bundle' );
    wp_enqueue_script( 'mypluginscript' );

    return $map;}
?>

Run Code Online (Sandbox Code Playgroud)

我的意思是短代码有效;当我尝试只显示一个简单的字符串(如“abc”)时,它显示了,所以它有效,但我想在返回函数上显示其他页面。

html php wordpress plugins shortcode

1
推荐指数
1
解决办法
2180
查看次数

无法理解“无法找到‘Window_sendPlatformMessage’(4 个参数)”错误的 Flutter Isolate 解决方法

我正在将一个非常简单的标签打印应用程序转换为FlutterSwift。该应用程序的一个主要组件是本地缓存的数据库,用于离线访问产品。

虽然我可以在主线程上下载并缓存所有 12,000 多个产品,但对于如此繁重的操作来说,这是一个非常非常糟糕的解决方案,我真的很想避免这种情况,除非作为最后的手段。即使作为最后的手段,如果后台线程无法完成诸如将在线数据缓存到本地数据库等基本任务,我也很难说服雇主让我从 Swift 迁移到 Flutter。

因此,我一直在探索隔离。此过程中,每当"'Window_sendPlatformMessage' (4 arguments) cannot be found"尝试在. 现在我在githubstackoverflow上读到Isolates 不支持使用插件(可能是包?),除非以一种奇怪的解决方法。我尝试过一个插件,当我尝试使用它时,它只会使我的应用程序崩溃,并出现非常神秘的堆栈跟踪,因此看起来解决方法是唯一的方法。Isolate

我大约一周前才开始使用 flutter 进行构建,大约两天前才开始使用 Isolates,所以目前我对一切的基本了解还很肤浅。在 flutter 存储库上,有一条评论似乎概述了插件问题的解决方法,我希望它允许我使用path_providersqflite缓存从 Web API 获取的数据。

更有经验的 Flutter 开发人员能否为我将这个解释分解为婴儿咬伤?


编辑:

正如下面的答案中所述,sqflite它已经是异步的,并且显然在与主线程不同的线程上运行,因此看起来我的具体情况将通过使用计算来解决我的 dart-pure API 调用以获取 JSON 数据并使用常规sqflite用于存储。尽管如此,仍然需要一个关于不稳定的隔离解决方法的初学者指南,所以我将这个问题留待解决。

plugins dart dart-isolates flutter

1
推荐指数
1
解决办法
4846
查看次数

如何在logstash过滤器中使用redis?

我正在将 ELK+Redis 从非常旧的版本升级到最新版本。

ES 1.6 to 7.4
LS 1.4 to 7.4
Redis 2.8 to 5.0
Run Code Online (Sandbox Code Playgroud)

我把所有东西都重新安装在一台新机器上。一切都很顺利,除了一件事:logstash-filter-redis 插件

这是我的logstash conf 文件

input
  {
    redis {
      host
      port => 6380
      data_type
      key
    }
  }
filter {
  grok {
    match => [ "message", "" ]
  }
  redis {
    host => ""
    port => 6379
    key => ""
    }
output {
  elasticsearch {
    host => ""
    index => ""
  }
Run Code Online (Sandbox Code Playgroud)

在这里,输入 { } 内的第一个 redis:6380 用于获取日志(用作logstash 输入源)

而第二个 redis:6379 在过滤器 { } 内被调用以获取与这些日志关联的数据。

我在https://www.elastic.co/guide/en/logstash/current/filter-plugins.html …

ruby plugins redis logstash elk

1
推荐指数
1
解决办法
2809
查看次数

Intellij 插件开发 - 找不到类?

当我运行我开发的插件时,出现插件异常。

它说:

引起:java.lang.ClassNotFoundException:my/class.name.Here PluginClassLoader [plugins.flashcards,1.0] com.intellij.ide.plugins.cl.PluginClassLoader@26537aa9位于com.intellij.ide.plugins.cl.PluginClassLoader。 loadClass(PluginClassLoader.java:63) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:348)在 com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:140) ... 19 更多

大概有一些东西丢失了,或者它没有捆绑或者其他什么东西——我几乎使用了基本的 build.gradle 文件和一个漂亮的 vanilla plugins.xml 文件,所以我不确定出了什么问题?

(另外,如果有人想制作插件教程,老实说我现在就会为此付出很多钱,实际的文档很糟糕!)

plugins intellij-idea

1
推荐指数
1
解决办法
1162
查看次数