Это просто, чтобы дать вам намек на путь к решение. Это не подробный шаг за шагом ответ.
Если alredy использует Grunt, вы можете использовать this grunt plugin. Это оболочка команды msdeploy.exe, поэтому вам нужно узнать об этом here.
Прежде всего вам необходимо установить Web Deploy на свой сервер. Есть серверные страты и сообщения об этом. Я выбрал путь Remote Agent.
Я вручную создаю веб-сайт (пока не знаю, как это сделать удаленно. Работая над этим. Вот почему я нашел этот вопрос), прежде чем развертывать. Затем я просто синхронизирую каталоги на своем компьютере (папку/dist) и путь на удаленном сервере.
Это часть моего Gruntfile.js с 2 примером определен в grunt.initConfig()
«Резервное копирование» сохраняет в пакете (почтовый файл) текущий удаленный каталог. Вторая задача называется 'Опер' синхронизирует ваш текущий билд расположен на <% = yeoman.dist%>
msdeploy: {
backup: {
options: {
verb: "sync",
source: {
dirPath: '<%= deploy.Config.basePathOper %><%=deploy.Oper.Web %>,computerName=<%=deploy.Config.computerName %>,username=<%=deploy.Config.username %>,password=<%= deploy.Config.password %>'
},
dest: {
package: '<%= deploy.Config.basePathOper %>\\backups\\web_' + grunt.template.today("yyyy-mm-dd-HH-MM-ss") + '.zip,computerName=<%=deploy.Config.computerName %>,username=<%=deploy.Config.username %>,password=<%= deploy.Config.password %>'
}
}
},
Oper: {
options: {
verb: 'sync',
source: {
dirPath: process.cwd() + '\\<%= yeoman.dist %>'
},
dest: {
dirPath: '<%= deploy.Config.basePathOper %><%=deploy.Oper.Web %>,computerName=<%=deploy.Config.computerName %>,username=<%=deploy.Config.username %>,password=<%= deploy.Config.password %>'
}
}
}
Задача, которую я создал выглядит что-то вроде этого
grunt.registerTask('deploy', function (target) {
if (target === 'Oper') {
grunt.task.run([
'msdeploy:backup',
'msdeploy:Oper'
]);
}
});
Не забудьте загрузить плагин:
grunt.loadNpmTasks('grunt-msdeploy');