Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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
Javascript 是否可以在Visual Studio预生成事件中添加对ng生成更改的监视?_Javascript_Angularjs_Build_Visual Studio 2017_Watch - Fatal编程技术网

Javascript 是否可以在Visual Studio预生成事件中添加对ng生成更改的监视?

Javascript 是否可以在Visual Studio预生成事件中添加对ng生成更改的监视?,javascript,angularjs,build,visual-studio-2017,watch,Javascript,Angularjs,Build,Visual Studio 2017,Watch,我在Visual Studio 2017中有一个基于angular cli的项目。我按照下面的链接进行了此设置,它可以正常工作。 我的预构建活动中包含以下内容: echo "cd $(SolutionDir)" &&^ cd "$(SolutionDir)" &&^ echo "Building Project" &&^ ng build &&^ echo 'copy files' &&^ 当我在VisualSt

我在Visual Studio 2017中有一个基于
angular cli
的项目。我按照下面的链接进行了此设置,它可以正常工作。

我的预构建活动中包含以下内容:

echo "cd $(SolutionDir)" &&^
cd "$(SolutionDir)" &&^
echo "Building Project" &&^
ng build &&^
echo 'copy files' &&^
当我在VisualStudio中构建或重新生成项目时,这种方法非常有效。它基于angular-cli.json在我的输出目录中生成捆绑文件

但是我需要一种方法来从VisualStudio内部监视
ng build
中的更改。我尝试了
ng build——在预构建事件中观看
,但在做了此更改后,我的构建过程出现了问题。我可以看到使用所有正确的捆绑文件生成输出目录,但在Visual Studio 2017中构建过程从未完成

作为一种解决方法,我没有在单独的命令窗口中运行
ngbuild--watch
。这可以工作并观察TypeScript、HTML、CSS的更改和重建(如预期的那样)。但希望将此集成到Visual Studio 2017中

注意:我的tsconfig.json中已经有了
“compileOnSave”:true
,但它与
ng build
不同。
谢谢。

我认为它不能作为Visual Studio中生成事件的一部分工作的原因是Visual Studio正在等待脚本完成,然后再继续生成过程。观看时,脚本永远不会“完成”,因为它在Angular CLI构建过程中不断监视更改


我个人希望自己实现自动化。

如果有人仍在寻找答案,这就是我在VStudio中添加到预构建事件中的内容:

powershell start-process "cmd " """/k ng build --watch"""

它会打开一个新的cmd窗口,启动ng构建过程并一直等待更改。当然,一旦完成调试会话,就必须关闭cmd窗口。否则,下次您点击F5时,它将打开一个新的cmd窗口

感谢您澄清为什么ng build with watch不能与visual studio挂钩。请Pawan Pillai检查我下面的答案。谢谢你的建议@圣地亚哥,现在它启动一个cmd窗口,并在完成更改后重新编译。现在,在重新编译之后,我需要将输出复制到另一个目录。是否有一种方法可以附加另一个进程来复制文件?@JenonD,“ng build”将应用程序编译到一个输出文件夹中(默认情况下是dist)。您可以通过修改angular-cli.json文件来更改此行为。查找应用程序中的outDir属性。@santiago,我有一个angular cli项目和.net mvc web项目,我需要将新生成的文件(从上面的powershell脚本)复制到.net mvc项目。这样我就可以刷新浏览器以查看更改。手动调用另一个npm任务或停止VisualStudio并重建,速度非常慢。我正在关注这个链接。到目前为止一切都很好,但如果我能在ng构建之后立即使用自动文件复制来加快开发过程,那就太完美了。@jenond,上面的powershell只是在一个单独的过程中运行ng build命令,这样Visual Studio就可以继续自己的构建过程。ng build命令由angular-cli.json配置文件管理。您可以将该文件的outDir属性更改为希望在每次生成后或检测到更改后复制文件的文件夹。默认情况下,ng build会将文件复制到dist文件夹,您可以将其更改为Scripts\NgApp