2016-01-12 4 views
4

Я пробовал два разных подхода к созданию генератора Йомен, и оба они терпят неудачу. Вот где я в настоящее время, но сначала с парой нот:Проблемы с созданием генератора Yeoman

  • yo doctor проходит все испытания
  • Я фиксированные разрешения НПХ путем изменения установки по умолчанию пути, as detailed here.

Попытка 1: Я установил модуль генератора генератора без каких-либо ошибок, но выполнение yo generator результатов в следующей ошибке:

module.js:328 
throw err; 
^ 

Error: Cannot find module 'download' 
    at Function.Module._resolveFilename (module.js:326:15) 
    at Function.Module._load (module.js:277:25) 
    at Module.require (module.js:354:17) 
    at require (internal/module.js:12:17) 
    at Object.<anonymous> (/usr/local/lib/node_modules/generator-generator/node_modules/yeoman-generator/lib/actions/fetch.js:3:16) 
    at Module._compile (module.js:398:26) 
    at Object.Module._extensions..js (module.js:405:10) 
    at Module.load (module.js:344:32) 
    at Function.Module._load (module.js:301:12) 
    at Module.require (module.js:354:17) 

Я принял догадку и побежал npm install -g download, но Бесполезный Ничего не исправить.

Покушение 2 Я последовал шаги, описанные на Yeoman's Authoring page, но даже после того, как npm link привели к правильному пути моего нового генератора, yo boilerplate только в результате генератора не установлена ​​ошибка. Структура файла генератора следующим образом:

generator-boilerplate 
    app 
     index.js 
    .yo-rc.json 
    package.json 

Содержание package.json являются:

{ 
    "name": "generator-boilerplate", 
    "version": "0.1.0", 
    "description": "A Yeoman generator for a standard front-end project", 
    "files": [ 
    "app" 
    ], 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "keywords": [ 
    "yeoman-generator", 
    "boilerplate" 
    ], 
    "author": "<my name>", 
    "license": "UNLICENSED", 
    "private": true, 
    "dependencies": { 
    "yeoman-generator": "^0.22.3" 
    } 
} 

Содержание приложения/index.js являются (только, чтобы получить что-то работать):

'use strict'; 

var util = require('util'); 
var path = require('path'); 
var generators = require('yeoman-generator'); 
var chalk = require('chalk'); 

var Boilerplate = generators.Base.extend({ 
    // The name `constructor` is important here 
    constructor: function() { 
     // Calling the super constructor is important so our generator is correctly set up 
     generators.Base.apply(this, arguments); 

     // Next, add your custom code 
     this.option('coffee'); // This method adds support for a `--coffee` flag 
    }, 

    promptUser: function() { 
     var done = this.async(); 

     // have Yeoman greet the user 
     console.log(this.yeoman); 

     var prompts = [{ 
      name: 'appName', 
      message: 'What is your app\'s name ?' 
     },{ 
      type: 'confirm', 
      name: 'addDemoSection', 
      message: 'Would you like to generate a demo section ?', 
      default: true 
     }]; 

     this.prompt(prompts, function (props) { 
      this.appName = props.appName; 
      this.addDemoSection = props.addDemoSection; 

      done(); 
     }.bind(this)); 
    } 
}); 

module.exports = Boilerplate; 

Любая помощь была бы принята с благодарностью. Благодаря!

ответ

2

Ошибка 1: Это, к сожалению, ошибка npm. Вы должны обновить npm до последней версии, удалить и переустановить. Эти ошибки произошли с пучком между npm 2 и 3.

Ошибка 2: Убедитесь, что вы находитесь в самом последнем году. Затем вы можете запустить DEBUG=* yo boilerplate, и это даст вам больше информации о том, где Йомен ищет регистраторы генераторов и, может быть, почему он не находит ваш связанный локальный генератор.

+1

Это сделало трюк. Благодаря! – ridgehkr

Смежные вопросы