Yeoman入門(第二部、generatorを作る)を参考にgeneratorを作成していたら、yo helloworld
した際に下記のエラーが発生したので、その原因と対策についてメモ。
events.js:72
throw er; // Unhandled 'error' event
^
Error: Cannot find module '../package.json'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at module.exports.yeoman.generators.Base.extend.initializing (/Users/ryo/Programming/web/generator-helloworld/generators/app/index.js:8:16)
at /Users/ryo/Programming/web/generator-helloworld/node_modules/yeoman-generator/lib/base.js:421:16
at processImmediate [as _immediateCallback] (timers.js:336:15)
原因?と対策
generator-generatorのバグっぽい。
このバグを修正したパッチ(path fix for package.json file #112)がマージされているので、もうしばらく待てば治ると思うけど、一応対策メモ。
generators/app/index.jsのrequire('../package.json')
をrequire('../../package.json')
に直すだけ。
generators/app/index.js
...
module.exports = yeoman.generators.Base.extend({
initializing: function () {
// this.pkg = require('../package.json'); <- このパスがおかしい
this.pkg = require('../../package.json');
},
…