Включая зависимости в package.json

Я хотел бы генерировать свои devDependencies, основанные на необходимости. Для этого у меня есть массив в моем генераторе и некоторые операции, подобные этой:

var FiddleGenerator = generator.Base.extend({
  init: function() {
    this.devDependencies = [];
  },
  //...excluded for brevity
  gruntConfigure: function() {
    this.devDepedencies = [
      'grunt',
      'grunt-contrib-watch',
      'grunt-contrib-connect'
    ];        
  },
  installStuff: {
    if(this.option('skip-install')) return;
    this.npmInstall(this.devDependencies, { saveDev: true });
  }
});

Проблема здесь в том, что когда пользователь решает пропустить установку npm, а затем делает это вручную (т.е. npm install) ничего не устанавливается.

Тем не менее, я не могу просто написать файл package.json вот так... какие версии я ставлю для каждого пакета, чтобы они выглядели следующим образом:

"devDependencies": {        
    "grunt": "~0.4.2",        
    "grunt-contrib-watch": "~0.5.3",
    "grunt-contrib-connect": "^0.7.0"
  }

1 ответ

Просто запишите devDependencies в файл package.json вручную внутри кода JS (this.fs.writeJSON). Не нужно использовать npmInstall() для этого.

Вы можете увидеть, как это делается здесь: https://github.com/yeoman/generator-node/blob/master/generators/gulp/index.js#L38-L69

Другие вопросы по тегам