1

我编写了一个 SPA,它使用 Grunt 任务将自己从源代码构建到一个dist目录中。

我想在 azure 上托管它,以将所有内容保存在一个 PaaS 中。

如果我将预建dist文件夹发送到 azure 并添加 .deploments 任务以将其移动到DEPLOYMENT_TARGET文件夹中,一切正常。但是,我只想将源代码保留在 GitHub 中,并在部署时使用现有的 Grunt 任务构建应用程序。

我使用以下命令添加了一个 .deployment 文件

[config]
command = npm install

成功触发了我的 npm 安装,然后是安装后脚本

"scripts": {
    "postinstall": "node node_modules/grunt-cli/bin/grunt build"
},

它将使用 grunt-cli 的本地副本(我不喜欢这个,但它可以工作),但是我收到一个错误,因为正在使用的节点版本是 0.6.20 并且 Grunt 需要大于 0.8

我在 package.json 中设置了我的引擎参数

"engines": {
    "node": ">= 0.8.4"
},

但没有运气:(

我感觉引擎参数被忽略了,因为node没有找到应用程序。这是正确的,因为我希望 azure 在不使用节点 http 服务器的情况下为我提供文件。

有没有办法针对另一个节点二进制文件或专门为我的网站设置节点版本,即使它不是“使用”节点?

非常感谢任何帮助

4

1 回答 1

0

使用您将 grunt-cli 的本地副本推送到 Azure 网站的示例,我能够在构建之后和部署之前让天蓝色运行 grunt。我将.net 与构建后事件一起使用,但这并不重要,因为整个问题是 azure 是否会运行 grunt。我有

grunt version 0.4.1 

grunt-cli version 0.1.9 

与我的应用程序一起部署并正在调用

npm install
my/path/to/grunt-cli/grunt

根据http://www.windowsazure.com/en-us/develop/nodejs/common-tasks/specifying-a-node-version/当前默认安装的节点版本是 0.6.20,但这种方法仍然适用我。

于 2013-07-12T02:40:23.750 回答