我正在尝试使用azure的git部署构建和打包我的项目。
我创建了以下文件
.deployment deploy.cmd
Gruntfile.js package.json
我的 .deployment
文件调用 deploy.cmd
. deploy.cmd
通过将路径设置为包含node.js和npm的签入副本来设置环境。我可以打电话 npm install
很好。当我打电话的时候 grunt
,它似乎执行到第一个标准输出消息,然后返回并设置错误返回码。除此之外,我没有收到任何其他信息。其他命令似乎运行得很好。
我试过用管子把它吹出来,不走运。我试过在远程执行控制台下运行,但没有成功。我的 Gruntfile.js
在本地运行良好。
我少了什么神奇的酱汁吗?
1条答案
按热度按时间b1uwtaje1#
这是一个有点老,但我会回答它无论如何只是以防万一有人遇到这个问题。
首先,在禁用颜色的情况下运行grunt是有帮助的,因为诊断控制台和部署日志都与ansi代码有冲突。要做到这一点,快跑
grunt --no-color
. 这应该将stdout信息返回到控制台和部署日志中。其次,我不建议使用node或npm的签入版本。windowsazure已经将这些内置到了环境中,并且已经为特殊的临时路径和缓存路径进行了配置,以便两者都能以最佳状态执行。
kudu项目是支持azure部署的部署引擎,但您已经知道这一点,因为您有一个.deployment文件。但是,azure命令行工具[
npm install azure-cli --global
]将帮助您构建一些更好的部署脚本,这些脚本将使用azure的预装节点和npm设置。会得到基本节点脚本。
从那里,需要一些修改来
deploy.sh
让它可靠地执行咕哝。内deploy.sh
是部署部分。将其内容替换为以下内容:这将运行
npm install
,后跟bower install
(如果bower.json存在),后跟grunt clean common dist
(如果gruntfile.js存在的话),最后是一个kudusync/wwwroot
. (注意:将“clean common dist”替换为您需要运行的任何grunt任务。)你可能会遇到其他一些问题。我在我的个人博客上写了一篇文章,其中包括一些你可能遇到的问题。