asp.net-mvc - ASP.NET MVC 在 Azure Kudu 部署期间运行 Gruntfile.js 作为构建的一部分
问题描述
我们有Gruntfile.js
包含一系列任务的文件,这些任务对 css 和 js 文件进行处理,它使用/// <binding BeforeBuild='all' />
本地计算机上的 Visual Studio Task Runner Explorer () 运行文件。
如何Gruntfile.js
在 Azure Web App Kudu 构建部署期间运行文件作为构建的一部分?
解决方案
- 在禁用颜色的情况下运行 grunt,因为诊断控制台和部署日志都与 ANSI 代码有冲突。跑
grunt --no-color
- Azure 命令行工具 [
npm install azure-cli --global
] 将帮助您构建一些更好的部署脚本,这些脚本将使用 Azure 的预安装节点和 NPM 设置。 - 需要进行一些修改
deploy.sh
才能使其可靠地执行 Grunt。其中deploy.sh
是#Deployment 部分。
azure site deploymentscript –-node
- 对于 Grunt 部署,我们将执行一个 Shell 脚本,该脚本将执行 npm、Bower 和 Grunt 命令,以使我们的代码可以投入生产。
# Deployment
# ----------
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
.
注意:用您需要运行的任何 Grunt 任务替换 'clean common dist'。
推荐阅读
- android - Jetpack Compose - 恢复 LazyColumn 滚动状态
- sitecore - 在内容树中显示文件夹而不是在 url
- c# - 输出数量的理解问题
- gitlab - 在并行阶段内优先考虑一些作业实例化
- java - Apache POI评估AllFormulaCells不起作用
- spring - 使用 Thymeleaf 检查多个 URL 参数
- azure - 从 git 存储库运行 Azure VM 扩展 Powershell 脚本
- c# - 我没有错误,但我无法在数据库中插入值,
- jquery - 如何从多列下拉选择器插件向控制器发送参数值
- html - 在 Jquery 中处理从 REST api 返回的 JSON 列表