我写了一个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服务器的情况下为我提供文件。
有没有办法定位另一个Node二进制文件,或者为我的网站专门设置节点版本,即使它不是“使用”节点,也不是这样吗?
任何帮助非常感谢
答案 0 :(得分:0)
使用将grunt-cli的本地副本推送到Azure网站的示例,我能够在构建之后和部署之前使用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,但这种方法对我来说仍然有用。