如何解决为什么将选项值从 yeoman-environment 传递给 yeoman-generator 不起作用?
如https://yeoman.io/authoring/integrating-yeoman.html所示 那个
// Or passing arguments and options
env.run('npm:app some-name',{ 'skip-install': true },done);
var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();
env.register(require.resolve('./generators/index.js'),'express');
env.run("express",{
entityName: 'entity',entityFields: {'abc':1,'cde':2},});
选项值显示如下 { entityName: '实体',实体字段:{'abc':1,}
module.exports = class extends Generator {
constructor(args,opts) {
super(args,opts);
console.log('constructor ',args,opts);
}
initializing() {
const companyName = this.options.companyName; // shows undefined
const entityName = this.options.entityName; // shows undefined
}
}
constructor(args,opts);
}
参数是 []
和选择是
{ sharedData: {},forwardErrorToEnvironment: false,skipLocalCache: true,initialGenerator: true,env:
Environment {
domain: null,_events: [Object: null prototype] {},_eventsCount: 0,_maxListeners: 100,options: {},adapter:
TerminalAdapter {
promptModule: [Function],console: [Console],log: [Function],tracker: [EventEmitter] },cwd: '/Users/asf/Documents/projects/server',logCwd: '/Users/asf/Documents/projects/server',store:
Store {
_generators: [Object],_Meta: [Object],_packagesPaths: {},_packagesNS: [Array] },command: undefined,runLoop:
Queue {
queueNames: [Array],__queues__: [Object],runOnAdd: false,_maxListeners: 0 },sharedFs:
Store {
domain: null,_events: [Object],_eventsCount: 1,fs: EditionInterface { store: [Store] },lookups: [ '.','generators','lib/generators','dist/generators' ],aliases: [ [Object] ],sharedOptions:
{ sharedData: {},skipLocalCache: true },repository:
YeomanRepository {
log: [Function],tracker: [EventEmitter],_repositoryPath: '/Users/asf/Documents/projects/server/.yo-repository',_nodeModulesPath:
'/Users/asf/Documents/projects/server/.yo-repository/node_modules' },_generators: {} },resolved:
'/Users/asf/Documents/projects/server/modules/app-generator/server/controllers/generators/app/index.js',namespace: 'express',_: [],help: undefined,h: undefined,'skip-cache': false,'skip-install': false,'force-install': false,'ask-answered': false }
opts 值没有传递选项值。
(node:47412) UnhandledPromiseRejectionWarning: TypeError: The generator doesn't provides a constructor.
at Environment._findGeneratorClass (/Users/xisizhe/Documents/projects/server/modules/app-generator/server/controllers/node_modules/_yeoman-environment@3.0.1@yeoman-environment/lib/environment.js:641:13)
at Environment.get (/Users/xisizhe/Documents/projects/server/modules/app-generator/server/controllers/node_modules/_yeoman-environment@3.0.1@yeoman-environment/lib/environment.js:598:17)
at Environment.create (/Users/xisizhe/Documents/projects/server/modules/app-generator/server/controllers/node_modules/_yeoman-environment@3.0.1@yeoman-environment/lib/environment.js:678:35)
at instantiateAndRun (/Users/xisizhe/Documents/projects/server/modules/app-generator/server/controllers/node_modules/_yeoman-environment@3.0.1@yeoman-environment/lib/environment.js:851:30)
at Environment.run (/Users/xisizhe/Documents/projects/server/modules/app-generator/server/controllers/node_modules/_yeoman-environment@3.0.1@yeoman-environment/lib/environment.js:873:12)
不知道为什么,我的代码中有构造函数,而且这个构造函数确实执行打印出来了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。