0

I have a project built using the angular-fullstack generator for Yeoman. I would like to deploy this to a Windows Server running IIS. I have successfully generated the "dist" folder using Grunt and moved the "public" and "server" folders with files to my IIS box.

How do I configure my Windows Server to host my application? Do I need to have two IIS sites (one for "public" and one for "server")? Do I need to install grunt, bower, etc. on the Windows Server?

4

3 回答 3

1

您不必手动安装 grunt 或 bower。使用以下命令在本地安装 package.json 中声明的节点组件:

npm install

angular-fullstack 生成器创建一个 Node.js 应用程序,因此您所要做的就是运行服务器端应用程序。/server/app.js使用 Node.js运行

您可以在这里查看如何在 IIS 中运行 Node 应用程序: http ://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx

于 2015-02-28T23:47:00.153 回答
0

这只是为了给你一个解决方法的提示。这不是一个详细的一步一步的答案。

如果已经使用 Grunt,你可以使用这个 grunt 插件。它是 msdeploy.exe 命令的包装,因此您需要在此处了解它。

在所有这些之前,您需要在您的服务器上安装 Web Deploy。有一些关于此的策略和帖子。我选择使用远程代理方式。

在部署之前,我手动创建了网站(还不知道如何远程执行此操作。正在努力。这就是我发现这个问题的原因)。然后我只同步我计算机中的目录(您的 /dist 文件夹)和远程服务器中的路径。

这是我的 Gruntfile.js 的一部分,其中定义了 2 个示例grunt.initConfig()

“备份”将当前远程目录保存在一个包(zip 文件)中。第二个名为“Oper”的任务同步您当前位于 <%= 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');
于 2016-10-27T16:05:07.317 回答
0

您必须在iisnode上部署应用程序并 为您的 web.config 文件进行正确的配置我目前能够使用 nodejs 服务器运行应用程序,但不能在 iisnode 应用程序中运行,因为我的 web.config 文件仍然可以正常工作我发布了一个问题更多信息在这里

于 2016-04-14T20:02:01.193 回答