运行 使用 yeoman 环境的 yeoman 子生成器
Run a yeoman sub-generator using yeoman-environment
当 yeoman 运行 处于嵌入式形式时,我在 运行 设置子生成器时遇到问题。
integrating yeoman in other tools 的文档提供了这个例子:
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();
env.register(require.resolve('generator-mine'), 'mine:app');
env.run('mine:app', done);
这也适用于我的发电机 mine
。
但是,当我尝试对 运行 任何子生成器 (mine:client
) 使用相同的代码时,它无法正常工作。有两种故障模式。
首先,如果我只注册应用程序生成器,并尝试运行子生成器:
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();
env.register(require.resolve('generator-mine'), 'mine:app');
env.run('mine:client', done);
我得到:
You don't seem to have a generator with the name “mine:client” installed.
其次,如果我同时注册应用程序和子生成器,并尝试 运行 子生成器:
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();
env.register(require.resolve('generator-mine'), 'mine:app');
env.register(require.resolve('generator-mine'), 'mine:client');
env.run('mine:client', done);
然后就没有错误信息了。但是,mine:app
生成器是 运行 而不是所需的 mine:client
生成器。
请记住,当直接从 shell.
调用时,子生成器会按预期工作。
我错过了什么?
env.register()
不会在自耕农 generator-XXX 中搜索所有 generators/*/index.js
它只使用 package.json
.[=17= 中的 main:
条目]
env.lookup()
扫描 generator-* 的节点安装并注册它找到的所有生成器。
改变
env.register(require.resolve('generator-mine'), 'mine:client');
到
env.lookup(() => { folder
env.run('mine:client', {}, err => { console.log('done'); });
});
当 yeoman 运行 处于嵌入式形式时,我在 运行 设置子生成器时遇到问题。
integrating yeoman in other tools 的文档提供了这个例子:
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();
env.register(require.resolve('generator-mine'), 'mine:app');
env.run('mine:app', done);
这也适用于我的发电机 mine
。
但是,当我尝试对 运行 任何子生成器 (mine:client
) 使用相同的代码时,它无法正常工作。有两种故障模式。
首先,如果我只注册应用程序生成器,并尝试运行子生成器:
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();
env.register(require.resolve('generator-mine'), 'mine:app');
env.run('mine:client', done);
我得到:
You don't seem to have a generator with the name “mine:client” installed.
其次,如果我同时注册应用程序和子生成器,并尝试 运行 子生成器:
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();
env.register(require.resolve('generator-mine'), 'mine:app');
env.register(require.resolve('generator-mine'), 'mine:client');
env.run('mine:client', done);
然后就没有错误信息了。但是,mine:app
生成器是 运行 而不是所需的 mine:client
生成器。
请记住,当直接从 shell.
调用时,子生成器会按预期工作。我错过了什么?
env.register()
不会在自耕农 generator-XXX 中搜索所有 generators/*/index.js
它只使用 package.json
.[=17= 中的 main:
条目]
env.lookup()
扫描 generator-* 的节点安装并注册它找到的所有生成器。
改变
env.register(require.resolve('generator-mine'), 'mine:client');
到
env.lookup(() => { folder
env.run('mine:client', {}, err => { console.log('done'); });
});