通过cake Start-Process运行gulp

问题描述 投票:0回答:1

我正在通过Windows容器内的gulp构建站点。

该容器在其中安装了nodejs和gulp-cli,如下所示(在Dockerfile中:]

#Install NodeJs
RUN (New-Object Net.WebClient).DownloadFile('https://nodejs.org/dist/v12.16.3/node-v12.16.3-win-x64.zip', 'node.zip'); \
    Expand-Archive -LiteralPath 'node.zip' -DestinationPath '.' ; \
    Start-Process -FilePath '.\node-v12.16.3-win-x64\npm' -NoNewWindow -Wait -ArgumentList 'install -g gulp-cli' ; \
    $env:PATH = 'c:\tools\node-v12.16.3-win-x64;' + $env:PATH; \
    [Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine);

您可以看到我正在将节点安装在c:\ tools \ node-v12.16.3-win-x64下的容器中。

在我的蛋糕脚本中,我尝试如下执行gulp文件:

StartProcess("cmd", new ProcessSettings {
            Arguments = "/c gulp",
            WorkingDirectory = projectDir)
        });

但是似乎Start-Process找不到文件...我从cake Start-Process获取此输出:

Executing: "cmd" /c gulp
'gulp' is not recognized as an internal or external command

以交互方式运行容器,我可以看到它在那个位置的文件,并且如果我从projectDir运行gulp的全部工作。

我也尝试过像以下所有形式一样运行它,但均未成功:

StartProcess("powershell", new ProcessSettings {
            Arguments = "gulp",
            WorkingDirectory = projectDir)
        });

StartProcess("gulp");

StartProcess("gulp.cmd");

这是容器中有关npn,gulp版本的输出(从注释中请求):

enter image description here

我正在通过Windows容器内的口水进行建筑。容器中以如下方式(在Dockerfile中)安装了nodejs和gulp-cli:#Install NodeJs RUN(New-Object Net.WebClient)....

gulp cakebuild
1个回答
0
投票

您可以尝试使用gulp应用程序的绝对路径。

© www.soinside.com 2019 - 2024. All rights reserved.