编写扩展包失败

`

{
    "name": "editor",
    "version": "0.0.1",
    "description": "一份简单的扩展包",
    "author": "joeyhuang",
    "main": "main.js",
    "main-menu": {
      "Packages/editorDemo": {
        "message": "editor:buildtest"
      }
    }
  }
`

`'use strict';

module.exports = {
  load () {
    // 当 package 被正确加载的时候执行
  },

  unload () {
    // 当 package 被正确卸载的时候执行
  },

  message: {
    buildtest() {
    }
  },
};`

如图,我这代码有问题吗,我一脸懵逼。
cocos creator 版本是2.2.0

首先你给出的代码是没有问题的

让我们先看一下你的代码逻辑

当点击菜单Packages/editorDemo会触发消息editor:buildtest,也就是调用editor插件的buildtest方法,也就是会执行main.js对应的消息函数buildtest

代码书写是没有问题的,问题是,为啥你的截图显示的是editor-demo插件,你的插件名从代码中看到的是editor

所以,你是否对插件名发生过修改editor-demo->editor?截图中我看到仍旧是editor-demo,但是你贴出的代码是editor,插件名是一个非常重要的字段,整个消息通讯机制,都依赖这个字段,来决定消息派发给谁,so,仔细检查下你的name吧

另外,使用editor并不是一个好名字,插件名尽量要避免和其他插件撞车

谢谢。我解决了。原因是messages我写成了message。无语,少写了个s的原因。
下面的代码是我后面修改过,怕图片看不清然后放上来的,所有名字有点对不上。现在可以了。

脸疼…

1赞

:joy::joy::joy:从Unity用C#过来,对js真的很无奈。我还想问下,扩展包的脚本有没可能也做成用ts编写的呢?不知会有多大难度。

可以的呀,现在creator已经支持ts编写项目了,插件这块也会考虑安排上滴

1赞

好的,非常期待你们的努力

我的问题和你一样,错误的原因也是一样的。。。。。