9

我想避免将生成的 JavaScript 文件添加到 git 源代码控制存储库。Azure Git Deploy 是否支持在部署文件之前运行附加命令来运行构建?

4

5 回答 5

3

是的,您可以使用自定义部署脚本运行任意逻辑。您需要在存储库中包含您需要的工具,或者最好根据需要下载它们(以避免提交二进制文件)。

于 2013-02-14T20:47:10.283 回答
3

现在您可以生成自定义部署脚本自定义部署脚本

然后使用以下命令编辑 npm 命令以使用较新的 node.exe 版本(0.8.2):

call "D:\Program Files (x86)\nodejs\0.8.2\node.exe" "D:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" install --production

于 2013-02-28T18:48:09.447 回答
2

以防万一其他人正在寻找,这就是我需要做的才能使其正常工作。

首先,我确保将 TypeScript 安装在 Kudu 构建服务器可以访问的位置,方法是在deploy.cmd文件顶部的某处添加以下行:

call npm install typescript
IF %ERRORLEVEL% NEQ 0 (
  echo Unable to install TypeScript
  goto error
)

这会将 TypeScript 的 Node 可调用版本放置在.\node_modules\.bin\tsc.cmd.

实际执行构建的批处理文件(可通过各种方式调用,但主要作为构建后事件)如下所示:

@echo off
if (%1%=="") goto settsc
cd %1%

:settsc
if exist ".\node_modules\.bin\tsc.cmd" (
    set tsc=call ".\node_modules\.bin\tsc.cmd"
    goto build
)
if exist "%ProgramFiles(x86)%\Microsoft Sdks\Typescript\0.9\tsc.exe" (
    set tsc="%ProgramFiles(x86)%\Microsoft Sdks\Typescript\0.9\tsc.exe"
    goto build
)
if exist "%ProgramFiles%\Microsoft Sdks\Typescript\0.9\tsc.exe" (
    set tsc="%ProgramFiles%\Microsoft Sdks\Typescript\0.9\tsc.exe"  
    goto build
)
echo TypeScript compiler not found
exit 999

:build
echo Building TypeScript: Payboard.Site.js (using %tsc%)
%tsc% --sourcemap --out Scripts\Payboard\Payboard.Site.js @tsbuild_Site.txt
echo Building TypeScript: Payboard Widget (using %tsc%)
%tsc% --sourcemap --out Widget\v1.0\Payboard.js @tsbuild_Widget_v10.txt
echo Building TypeScript: App\Payboard.App.js (using %tsc%)
%tsc% --sourcemap --out App\Payboard.App.js @tsbuild_App.txt

希望这可以帮助其他人。

于 2013-12-06T20:20:49.117 回答
1

这是另一种解决方法,不需要自定义部署脚本,不需要批处理文件,只需对项目文件进行少量更改。

包含详细信息的博客文章可在http://manfredlange.blogspot.co.nz/2014/01/aspnet-mvc-typescript-azure-website-and.html获得。博客文章中提到的示例项目的源代码可在https://bitbucket.org/ml_agileutilities/typescript-sample获得。有一个分支可以重现该问题,还有一个包含解决方法的分支。

请注意,据我所知,Microsoft 正在制定适当的解决方案。在您阅读本文时,可能不再需要解决方法。

于 2014-01-21T06:35:26.337 回答
0

现在可以在没有任何脚本的情况下使用 Typescript。只要确保 TypeScript 可以在 VS 中工作,那么它也可以在 Kudu 构建中工作。请注意,您可能有 TypeScript 版本冲突,请参见例如这个问题

于 2015-05-18T18:39:13.887 回答