为什么Visual Studio在错误的文件夹中查找我的gulpfile?

时间:2016-12-13 17:50:05

标签: asp.net visual-studio-2015 gulp nopcommerce

背景故事

我一直在尝试在Visual Studio中设置一个项目,它使用GulpJS编译Sass。我被告知VS应该自动识别项目中的package.json并运行npm install,但我必须通过命令行手动执行此操作。即便如此,当我打开Task Runner Explorer时,它表示有(No tasks found)。我和我的同事查找了适用于其他人的解决方案,其中许多报告称在重新启动VS,清除一些缓存数据或重新安装节点模块后取得了成功;然而,这些都不适合我。以下是我尝试的一些解决方案:

问题

经过一番挖掘后,我遇到了软件包管理器控制台,并决定可以通过它来运行,而不是打开一个单独的CMD窗口。但是,当我这样做时,我得到了以下内容:

[11:27:43] Local gulp not found in C:\
[11:27:43] Try running: npm install gulp

我的想法是我可能需要重新安装依赖项,所以我运行了npm install并得到了这个输出:

npm : npm WARN enoent ENOENT: no such file or directory, open 'C:\package.json'
At line:1 char:1
+ npm install
+ ~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (npm WARN enoent...:\package.json':String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data

npm

WARN
 !invalid#1 No license field.

这时我注意到它正在寻找C:\package.json而不是我的Project目录中的ls。但是,当我运行C:\Dev\solution-name时,它会清楚地显示它位于解决方案根目录中,位于cd Presentation\Nop.Web。我尝试使用C:\导航到特定项目,但我仍然得到它在TIdSSLIOHandlerSocketOpenSSL(FSocket.IOHandler).SSLOptions.SSLVersions := [sslvTLSv1_2,sslvTLSv1_1, sslvTLSv1]; 根目录中的结果。任何人都可以解释为什么会发生这种情况以及如何解决它?

1 个答案:

答案 0 :(得分:1)

我终于明白了(再过一天,我会为这个问题提供赏金),这对VS来说不是问题。回到我第一次开始使用这台特定的计算机并且仍然使用Windows的默认命令提示符时,我不喜欢它在默认情况下从%USERPROFILE%开始。所以我找了一种改变默认方式的方法,偶然发现了一个注册表“hack”,它基本上在cd C:/启动时运行cmd.exe。但事实证明,这会导致其他命令行工具(包括Powershell和VS的程序包管理器)运行该命令。

如果其他人遇到此问题(由于这种情况的性质,我怀疑有人),您可以尝试按照以下步骤操作:

  1. 打开注册表编辑器。我是通过使用Windows运行工具( Win + R )并键入regedit来完成的。
  2. 导航至HKEY_CURRENT_USER > SOFTWARE > Microsoft > Command Processor
  3. 删除AutoRun(或将其值更改为不会影响工作流程的内容)。
  4. 更多信息here

    Original Registry Tutorial(请注意,如果我向下滚动一点,我可能会避免这种情况。)