在 Yeoman 中使用 Node.js' module.exports 的不同结果
Different results using Node.js' module.exports in Yeoman
我收到了与 module.exports
不同的结果,非常感谢有人帮助我弥补我知识中的明显漏洞。
从下面的代码中,我收到下面列出的结果。
var generators = require('yeoman-generator');
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
}
});
module.exports = MyBase.extend({
method1: function() {
console.log('method 1 just ran');
}
});
结果:
method 1 just ran
但是如果我将 module.exports
放在它自己的行上,并将 MyBase
分配给它,我会得到以下结果。这是代码:
var generators = require('yeoman-generator');
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
}
});
MyBase.extend({
method1: function() {
console.log('method 1 just ran');
}
});
module.exports = MyBase
结果:
this is a helper method
导致输出差异的原因是什么?
我无法完全重现您的问题,但问题几乎可以肯定是在生成器上调用 .extend returns 具有当前属性和扩展属性的新生成器这一事实。
var generators = require('yeoman-generator');
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
}
});
// Capture the output of the .extend function
var MyBase2 = MyBase.extend({
method1: function() {
console.log('method 1 just ran');
}
});
module.exports = MyBase2
或者,您可以一次定义多个属性
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
},
method1: function() {
console.log('method 1 just ran');
}
});
我收到了与 module.exports
不同的结果,非常感谢有人帮助我弥补我知识中的明显漏洞。
从下面的代码中,我收到下面列出的结果。
var generators = require('yeoman-generator');
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
}
});
module.exports = MyBase.extend({
method1: function() {
console.log('method 1 just ran');
}
});
结果:
method 1 just ran
但是如果我将 module.exports
放在它自己的行上,并将 MyBase
分配给它,我会得到以下结果。这是代码:
var generators = require('yeoman-generator');
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
}
});
MyBase.extend({
method1: function() {
console.log('method 1 just ran');
}
});
module.exports = MyBase
结果:
this is a helper method
导致输出差异的原因是什么?
我无法完全重现您的问题,但问题几乎可以肯定是在生成器上调用 .extend returns 具有当前属性和扩展属性的新生成器这一事实。
var generators = require('yeoman-generator');
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
}
});
// Capture the output of the .extend function
var MyBase2 = MyBase.extend({
method1: function() {
console.log('method 1 just ran');
}
});
module.exports = MyBase2
或者,您可以一次定义多个属性
var MyBase = generators.Base.extend({
helper: function() {
console.log('this is a helper method');
},
method1: function() {
console.log('method 1 just ran');
}
});