Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gulp 通过蛋糕启动过程运行一口_Gulp_Cakebuild - Fatal编程技术网

Gulp 通过蛋糕启动过程运行一口

Gulp 通过蛋糕启动过程运行一口,gulp,cakebuild,Gulp,Cakebuild,我正在通过一个windows容器中的一小口构建站点: mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-1909 容器中安装了nodejs和gulp cli,如下所示(在Dockerfile中): 如您所见,我正在c:\tools\node-v12.16.3-win-x64下的容器中安装节点 在我的cake脚本中,我尝试执行gulp文件,如下所示: StartProcess("cmd", new ProcessSettin

我正在通过一个windows容器中的一小口构建站点:

mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-1909
容器中安装了nodejs和gulp cli,如下所示(在Dockerfile中):

如您所见,我正在c:\tools\node-v12.16.3-win-x64下的容器中安装节点

在我的cake脚本中,我尝试执行gulp文件,如下所示:

StartProcess("cmd", new ProcessSettings {
            Arguments = "/c gulp",
            WorkingDirectory = projectDir)
        });
但似乎启动进程找不到文件。。。我从蛋糕开始的过程中得到这个输出:

Executing: "cmd" /c gulp
'gulp' is not recognized as an internal or external command
运行ContainerInteractive,我可以看到文件,它就在那个地方,如果我从projectDir运行gulp,所有的工作都可以

我也尝试过像以下所有表单一样运行它,但没有成功:

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

StartProcess("gulp");

StartProcess("gulp.cmd");
这是容器内关于npn、gulp版本的输出(根据评论要求):

编辑:

“本地版本:未知”
似乎已关闭。
C:\code
是您的项目目录吗

当我查看“官方”gulp配置步骤时,安装结果是同时具有CLI和本地版本。 (见:)

你可以考虑使用蛋糕。GULP可以通过本地或全球安装来帮助蛋糕的吞咽:

  • 名称空间:

  • 用法示例:

也许确保npm在本地安装gulp可以实现这一点,因为cake需要本地版本。不幸的是,我对蛋糕缺乏经验,所以这是我在做了一些基础研究之后的最佳猜测。 (我的一个消息来源:)


原始答案

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

例如:

StartProcess("cmd", new ProcessSettings {
            Arguments = "/c c:\tools\node-v12.16.3-win-x64\gulp",
            WorkingDirectory = projectDir)
        });

这可能是因为您的环境设置不正确,我发现这可能很有用:

Hi,我也尝试过这种方法,但结果相同。环境变量的优点很好,但似乎设置正确,因为如果我迭代运行容器并检查环境变量,它就在那里。当您在此容器上交互运行
gulp--version
时,您是否可以向提供输出?我也很好奇这是否有效:
where gulp
where npm
我认为gulp需要npm能够很好地运行,所以这也是检查npm:)嗨@estherwn谢谢你的回复。。。我已将您提到的输出添加到问题中
StartProcess("cmd", new ProcessSettings {
            Arguments = "/c c:\tools\node-v12.16.3-win-x64\gulp",
            WorkingDirectory = projectDir)
        });