gpt4 book ai didi

yeoman - 使用 yeoman-environment 运行 yeoman 子生成器

转载 作者:行者123 更新时间:2023-12-01 15:27:55 25 4
gpt4 key购买 nike

当 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()不为所有 generators/*/index.js 搜索自耕农生成器-XXX它只使用 main:条目来自 package.json .
env.lookup()扫描节点安装的 generator-* 并注册它找到的所有生成器。

改变
env.register(require.resolve('generator-mine'), 'mine:client');

env.lookup(() => {  folder
env.run('mine:client', {}, err => { console.log('done'); });
});

关于yeoman - 使用 yeoman-environment 运行 yeoman 子生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48680805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com