YEOMAN версия: 1.4.8 НПМ: 2.11.3 Node: 0.12.7Аргументы, передаваемые через composeWith не найден в составе генератора
Там в добавленное икота генератора вызывающего свой subgenerator, но это не слишком безумный, и эта часть работает отлично.
У меня есть это в моем родителя:
this.composeWith('mercury:component', { options: {
component: this.props.domain + 'Content',
domain: this.props.path + '/'
}})
И это в моем компоненте индекса:
constructor: function() {
yeoman.generators.Base.apply(this, arguments);
this.argument('component', {type: String, required: true});
this.argument('domain', {type: String});
},
Если я позвоню ртуть: компонент непосредственно и проверить arguments
, я вижу арг командной строки в '0'.
{ '0': [ 'test', '.' ],
'1': { env: {things...} } }
Когда он вызывается из родительского генератора, они являются свойствами «1».
{ '0': [],
'1':
{ component: 'TestContent',
domain: 'src/domains/test/',
env: {things...} } }
У этого есть грустное.
Error: Did not provide required argument component!
at null.<anonymous> (/Users/zlandon/mercury/generator-mercury/node_modules/yeoman-generator/lib/base.js:359:33)
at Array.forEach (native)
at Base.checkRequiredArgs (/Users/zlandon/mercury/generator-mercury/node_modules/yeoman-generator/lib/base.js:355:19)
at argument (/Users/zlandon/mercury/generator-mercury/node_modules/yeoman-generator/lib/base.js:321:8)
at new module.exports.yeoman.generators.Base.extend.constructor (/Users/zlandon/mercury/generator-mercury/generators/component/index.js:11:10)
at Environment.instantiate (/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/environment.js:297:10)
at Environment.create (/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/environment.js:274:15)
at composeWith (/Users/zlandon/mercury/generator-mercury/node_modules/yeoman-generator/lib/base.js:614:26)
at module.exports.yeoman.generators.Base.extend.writing.app (/Users/zlandon/mercury/generator-mercury/generators/app/index.js:55:12)
at /Users/zlandon/mercury/generator-mercury/node_modules/yeoman-generator/lib/base.js:421:16
Я считаю, что у меня есть старая версия узла из-за внешних причин, но трассировки стека делает его чувствовать Yo-специфический в любом случае.
args должен быть массивом, а не объектом, но это было направление, в котором мне нужно было идти. – Hupfen
Правильно, я обновил ответ. –