Включая зависимости в 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