我有一个使用angular-fullstack生成器为Yeoman构建的项目。我想将其部署到运行IIS的Windows Server。我已成功生成了" dist"文件夹使用Grunt并移动" public"和"服务器"文件夹到我的IIS框。
如何配置Windows Server以托管我的应用程序?我是否需要有两个IIS站点(一个用于"公用和#34;一个用于"服务器")?我是否需要在Windows Server上安装grunt,bower等?
答案 0 :(得分:1)
您无需手动安装grunt或bower。使用以下命令在本地安装在package.json中声明的节点组件:
npm install
angular-fullstack生成器创建一个Node.js应用程序,所以你要做的就是运行服务器端应用程序。使用Node.js运行/server/app.js
您可以在此处查看如何在IIS中运行Node应用程序: http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx
答案 1 :(得分:0)
您必须在iisnode上部署该应用程序 为您做正确的配置web.config文件我目前能够使用nodejs服务器运行应用程序但不能在iisnode应用程序中运行,因为我的web.config文件仍然正常工作我发布了一个包含更多信息的问题here
答案 2 :(得分:0)
这只是为了向您提供解决方案的提示。这不是一个详尽的逐步回答。
如果使用Grunt alredy,您可以使用this grunt plugin。 它是msdeploy.exe命令的包装器,因此您需要了解here。
在此之前,您需要在服务器上安装Web Deploy。关于此,有几个策略和帖子。我选择使用Remote Agent方式。
我在部署之前手动创建网站(不知道如何远程执行此操作。继续使用。这就是我发现此问题的原因)。然后我只是同步我的计算机中的目录(你的/ dist文件夹)和远程服务器中的路径。
这是我的一个Gruntfile.js,其中包含grunt.initConfig()
'备份'将包(zip文件)保存在当前远程目录中。 第二个名为“操作”的任务同步位于<%= 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');