grunt无法在azure网站上运行

hgncfbus  于 2021-06-20  发布在  Kudu
关注(0)|答案(1)|浏览(354)

我正在尝试使用azure的git部署构建和打包我的项目。
我创建了以下文件
.deployment deploy.cmd Gruntfile.js package.json 我的 .deployment 文件调用 deploy.cmd . deploy.cmd 通过将路径设置为包含node.js和npm的签入副本来设置环境。我可以打电话 npm install 很好。当我打电话的时候 grunt ,它似乎执行到第一个标准输出消息,然后返回并设置错误返回码。除此之外,我没有收到任何其他信息。其他命令似乎运行得很好。
我试过用管子把它吹出来,不走运。我试过在远程执行控制台下运行,但没有成功。我的 Gruntfile.js 在本地运行良好。
我少了什么神奇的酱汁吗?

b1uwtaje

b1uwtaje1#

这是一个有点老,但我会回答它无论如何只是以防万一有人遇到这个问题。
首先,在禁用颜色的情况下运行grunt是有帮助的,因为诊断控制台和部署日志都与ansi代码有冲突。要做到这一点,快跑 grunt --no-color . 这应该将stdout信息返回到控制台和部署日志中。
其次,我不建议使用node或npm的签入版本。windowsazure已经将这些内置到了环境中,并且已经为特殊的临时路径和缓存路径进行了配置,以便两者都能以最佳状态执行。
kudu项目是支持azure部署的部署引擎,但您已经知道这一点,因为您有一个.deployment文件。但是,azure命令行工具[ npm install azure-cli --global ]将帮助您构建一些更好的部署脚本,这些脚本将使用azure的预装节点和npm设置。

azure site deploymentscript –-node

会得到基本节点脚本。
从那里,需要一些修改来 deploy.sh 让它可靠地执行咕哝。内 deploy.sh 是部署部分。将其内容替换为以下内容:


# Deployment

# ----------

echo Handling node.js grunt deployment.

# 1. Select node version

selectNodeVersion

# 2. Install npm packages

if [ -e "$DEPLOYMENT_SOURCE/package.json" ]; then
  eval $NPM_CMD install
  exitWithMessageOnError "npm failed"
fi

# 3. Install bower packages

if [ -e "$DEPLOYMENT_SOURCE/bower.json" ]; then
  eval $NPM_CMD install bower
  exitWithMessageOnError "installing bower failed"
  ./node_modules/.bin/bower install
  exitWithMessageOnError "bower failed"
fi

# 4. Run grunt

if [ -e "$DEPLOYMENT_SOURCE/Gruntfile.js" ]; then
  eval $NPM_CMD install grunt-cli
  exitWithMessageOnError "installing grunt failed"
  ./node_modules/.bin/grunt --no-color clean common dist
  exitWithMessageOnError "grunt failed"
fi

# 5. KuduSync to Target

"$KUDU_SYNC_CMD" -v 500 -f "$DEPLOYMENT_SOURCE/dist" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;.deployment;deploy.sh"
exitWithMessageOnError "Kudu Sync to Target failed"

这将运行 npm install ,后跟 bower install (如果bower.json存在),后跟 grunt clean common dist (如果gruntfile.js存在的话),最后是一个kudusync /wwwroot . (注意:将“clean common dist”替换为您需要运行的任何grunt任务。)
你可能会遇到其他一些问题。我在我的个人博客上写了一篇文章,其中包括一些你可能遇到的问题。

相关问题