Я хотел бы сгенерировать свои devDependencies на основе необходимости. Для этого у меня есть массив в моем генераторе и некоторые операции, как это:включая devdependencies в package.json
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 install
) ничто не установлена.
Однако, я не могу просто написать package.json файл вроде этого ... какие версии я поставить против каждого пакета, чтобы иметь их выглядеть следующим образом:
"devDependencies": {
"grunt": "~0.4.2",
"grunt-contrib-watch": "~0.5.3",
"grunt-contrib-connect": "^0.7.0"
}
Но версии не приходят к каждому пакету я использую. В моем коде 'npmInstall' позаботится об этом. Код, который вы указали, расширяет существующие packages.json и перезаписывает его. Он не показывает, как зависимости добавляются динамически с помощью кода ... – deostroll
Обновлен пример с зависимостями добавления подгенераторов. Во всяком случае, основной момент остается, просто добавьте их в package.json, а не используя 'npmInstall'. Вам не нужны автоматические ошибки, потому что ваш генератор будет генерировать сломанный код через месяц или два; и это очень плохой пользовательский интерфейс. –