如何将MeteorJS应用程序部署到Windows Azure?

如何将MeteorJS应用程序部署到Windows Azure?,azure,meteor,Azure,Meteor,如何将生产应用程序部署到Windows Azure?是的。看 在大多数情况下,这就像使用“流星束”一样简单, ,然后将生成的文件与PaaS一起上载 提供者的 Demeteorizer通过创建 与标准外观Node.js更相似的东西 应用程序,包含一个package.json文件作为依赖项 管理层 断开连接或崩溃后保持应用程序运行 整个部署都在使用。或者,尽管它甚至没有更新的文档 要在Azure web应用程序中运行Meteor应用程序,请执行以下操作: Azure Web App Python

如何将生产应用程序部署到Windows Azure?

是的。看

在大多数情况下,这就像使用“流星束”一样简单, ,然后将生成的文件与PaaS一起上载 提供者的

Demeteorizer通过创建 与标准外观Node.js更相似的东西 应用程序,包含一个package.json文件作为依赖项 管理层

断开连接或崩溃后保持应用程序运行

整个部署都在使用。或者,尽管它甚至没有更新的文档

要在Azure web应用程序中运行Meteor应用程序,请执行以下操作:

Azure Web App 
Python 2.7
Websockets ON (optional)
WEBSITE_NODE_DEFAULT_VERSION 0.10.32 (default)
ROOT_URL http://webapp.azurewebsites.net
MONGO_URL mongodb://username:password@instance.mongolab.com:36648/dbname (For advanced apps. Request log should say if you need it.)

Dev Machine
Install Visual Studio Community 2015
Install Node 0.12.6
Install Meteor MSI

app> demeteorizer -o ..\app-dem
app-dem\programs\server\packages\webapp.js change .PORT line to "var localPort = process.env.PORT"
app-dem\package.json change "node": "0.10.36" to "node": "0.12.6"
app-dem> npm install 
app-dem> git init
app-dem> git add -A .
app-dem> git commit -m "version 1.0 demeteorized Meteor + tweaks"
app-dem> git remote add azure https://username@webapp-slot.scm.azurewebsites.net:443/webapp.git
app-dem> git config http.postBuffer 52428800
app-dem> git push azure master
您可以使用
meteor build
在输出根目录中创建package.json,而不是
demeteorizer-o

{
    "name": "App name",
    "version": "0.0.1",
    "main": "main.js",
    "scripts": {
        "start": "node main.js"
    },
    "engines": {
        "node": "0.12.6"
    }
}
如果bcrypt未编译,请确保使用更新的版本:

    "dependencies": {
        "bcrypt": "https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.4.tgz"
    }

在开始之前,请确保您已经安装了32位版本的nodejs,并在windows构建机器上运行了“npm-g安装光纤”。azure上的默认nodejs仅运行32位

注意:例如,如果您使用的是spiderable包,它在PhantomJS上进行中继,那么这将不起作用。PhantomJS不能在azure上的webapp中执行

  • 在项目“meteor build..\buildOut”中,提取位于“.\buildOut”中的.tar.gz文件
  • 在“.\buildOut\bundle”中放置/创建包含以下内容的“package.json”:
  • {
    “名称”:“AppName”,
    “版本”:“0.0.1”,
    “main”:“main.js”,
    “脚本”:{
    “开始”:“node main.js”
    },
    “发动机”:{
    “节点”:“0.12.6”
    }
    }
    
    注意:确保“name”不包含空格,azure上的部署将失败

  • 在您最喜欢的shell上,转到“.\buildOut\bundle\programs\server”并运行“npm安装”。这将预下载所有需求并构建它们
  • 现在打开文件“.\buildOut\bundle\programs\server\packages\webapp.js”并搜索“process.env.PORT”
  • 看起来是这样的:

    var localPort=parseInt(process.env.PORT)| 0;
    
    将这一行改为:

    var localPort=process.env.PORT | 0;
    
    这是必需的,这样您的meteor项目在节点中运行时就可以接受命名套接字。函数“parseInt”不会让字符串通过,指定的套接字是位于webapp环境中的字符串。我这样做是有原因的,这里有一个警告!现在保存此更改,我们即将完成

  • 解决bcrypt问题:下载此文件并将其解压缩到某个位置: 把它取出来 现在替换位于以下位置的文件:“…\buildOut\bundle\programs\server\npm\npm bcrypt\node\u modules\bcrypt*”

    目录和文件位于以下位置:“.\bcrypt-0.8.4\package*”

    现在转到目录“.\buildOut\bundle\programs\server\npm\npm bcrypt\node\u modules\bcrypt\”中的shell,并确保删除“node\u modules”目录。如果没有删除node_modules目录,由于某种原因,npm将不会构建包

    在shell“npm安装”上运行

    确保您在门户网站中为您的webapp设置了“环境”变量:“MONGO_URL”和“ROOT_URL”

    如果一切正常,您可以将应用部署到webapp部署槽上的git存储库中。转到“.\buildOut\bundle”并将那里的文件提交到部署槽的存储库。这将在部署槽上进行部署,并创建所需的iis配置文件

    现在请稍等,一段时间后你的应用程序应该会启动。。。你的应用程序应该正在运行,你可以在*.azuresites.net上访问它


    多亏了这一切。

    多亏了微软德国有限公司的Carsten Lemm解决了诸如更改端口线等晦涩难懂的问题。我正在尝试Azure web app路线,并链接了我的源代码管理并为ROOT\u URL设置了一个键值,它已经部署,但当我转到URL时,它说什么都没有。部署日志并没有告诉我多少。是否有其他位置可以设置根URL而不是在应用程序设置下?@Trevor,据我所知不是这样。确保已启用诊断日志,并且主文件为
    server.js
    或在
    package.json
    中指定。命名的管道端口行问题现在是我编写的powershell脚本:
        "dependencies": {
            "bcrypt": "https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.4.tgz"
        }