小编Mik*_*der的帖子

在子生成器中使用composeWith选项

我正在组建一个Yeoman Generator并且无法理解composeWith()的options参数如何工作.我的目标是将用户输入从主生成器的提示传递给子生成器,我认为选项是这样做的方式.

我的主要生成器的提示看起来像这样:

prompting: function () {
    var done = this.async();

    var prompts = [
      {
        type    : 'input',
        name    : 'name',
        message : 'What is the name of your project?',
        default : this.appname // Default to current folder name
      }
    ];

    this.prompt(prompts, function (answers) {

        this.composeWith('app:subgenerator', {
          options: {
            name: answers.name;
          }
        },
        {
          local: require.resolve('generator-angular/app')
        });
        done();
    }.bind(this)
  )
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试在我的子生成器中使用构造函数中的参数设置局部变量(因为我假设这是选项所在的位置),如下所示:

module.exports = generators.Base.extend({
  constructor: function () {
    generators.Base.apply(this, arguments);
    this.foo = arguments.options.name;
  }
}
Run Code Online (Sandbox Code Playgroud)

但这没效果.我试过控制台记录参数变量,它显示选项是一个对象,但它似乎是空的.

这是我如何通过生成器将用户输入传递给另一个,还是有另一种方法可以做到这一点?

yeoman yeoman-generator

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

面板和PageMod内容脚本消息传递在Firefox扩展中

我正在使用Firefox Add-on SDK将Chrome扩展程序移植到Firefox.

该扩展程序包含一个连接到工具栏按钮的面板(相当于Chrome的popup.html +浏览器操作)和一个PageMod内容脚本.

当面板打开时,它需要向当前选项卡的内容脚本发送一条消息,以接收包含该页面中某些信息的对象.我遇到麻烦的部分是如何实际传递消息.有人能指点我正确的方向吗?我似乎找不到很多资源来帮助Chrome扩展开发人员学习Firefox插件开发.

以下问题在Chrome环境中演示了此概念.我只需要帮助将其移植到Firefox.
Chrome扩展程序 - 从弹出窗口传递到内容脚本的消息

javascript firefox firefox-addon firefox-addon-sdk

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

无法在Firefox Add-on SDK中导入带有require()的自定义模块

这是我正在做的简化代码示例.

foo.js(在lib目录中):

exports.foo = function foo() {
    this.bar = function() {
        console.log("foobar!");
    };
};
Run Code Online (Sandbox Code Playgroud)

main.js:

var foo = require("foo");
exports.main = function(options, callbacks) {
    foo.bar();
}
Run Code Online (Sandbox Code Playgroud)

CMD:

>cfx run
[...]
error: An exception occurred.
[...]
TypeError: foo.bar is not a function
Run Code Online (Sandbox Code Playgroud)

所以基本上,我似乎无法对我导入的模块做任何事情.我在这里做错了吗?我尝试用几种不同的方式格式化foo()函数,但它们似乎都没有做任何事情.

谢谢!

javascript firefox firefox-addon firefox-addon-sdk

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