Visual Studio 2015预览版 - Apache Cordova构建错误

8
当我在Visual Studio 2015 Preview中尝试构建Apache Cordova应用程序时,我遇到了以下错误。
npm install error : error : spawn ENOENT

但是在命令提示符中,如果我使用以下命令:

npm -v

它正在返回

2.1.9

但是当使用Visual Studio安装npm时,我遇到了错误。

有人可以帮我吗?

谢谢。

大家好,

按照Ellen的步骤完成后,Visual Studio报告了新的错误信息。

1>Task "MdaVsCli" (TaskId:17)
1>  Task Parameter:VsCliPath= C:\Users\MyName\AppData\Roaming\npm\node_modules\vs-mda\vs-cli.cmd (TaskId:17)
1>  Task Parameter:Platform=Android (TaskId:17)
1>  Task Parameter:ProjectDir=. (TaskId:17)
1>  Task Parameter:Configuration=Debug (TaskId:17)
1>  Task Parameter:ProjectName=BlankCordovaApp21 (TaskId:17)
1>  Task Parameter:Language=en-US (TaskId:17)
1>  Task Parameter:BuildTarget=RippleNexus (TaskId:17)
1>  The system cannot find the path specified. (TaskId:17)
1>Done executing task "MdaVsCli" -- FAILED. (TaskId:17)

我安装npm后,以下是显示的消息。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\xxl33
z1o.sqb\packages\vs-mda>npm -g install
npm WARN engine npm@1.3.4: wanted: {"node":">=0.6","npm":"1"} (current: {"node":
"0.10.33","npm":"2.1.9"})
npm WARN engine npm@1.3.4: wanted: {"node":">=0.6","npm":"1"} (current: {"node":
"0.10.33","npm":"2.1.9"})
C:\usr\local\vs-cli -> C:\usr\local\node_modules\vs-mda\vs-cli.cmd
vs-mda@0.1.70 C:\usr\local\node_modules\vs-mda
├── rimraf@2.2.6
├── ncp@0.5.1
├── q@1.0.1
├── mkdirp@0.3.5
├── adm-zip@0.4.4
├── optimist@0.6.1 (wordwrap@0.0.2, minimist@0.0.10)
├── fstream@0.1.28 (inherits@2.0.1, graceful-fs@3.0.4)
├── tar@0.1.20 (inherits@2.0.1, block-stream@0.0.7)
├── elementtree@0.1.6 (sax@0.3.5)
├── request@2.36.0 (json-stringify-safe@5.0.0, tunnel-agent@0.4.0, forever-agent
@0.5.2, qs@0.6.6, aws-sign2@0.5.0, oauth-sign@0.3.0, mime@1.2.11, node-uuid@1.4.
1, tough-cookie@0.12.1, form-data@0.1.4, hawk@1.0.0, http-signature@0.10.0)
├── ripple-emulator@0.9.24 (connect-xcors@0.5.2, colors@0.6.0-1, open@0.0.3, acc
ounting@0.4.1, request@2.12.0, moment@1.7.2, express@3.1.0)
├── cordova@4.0.0 (q@0.9.7, underscore@1.4.4, nopt@2.2.1, cordova-lib@4.0.0)
└── plugman@0.22.4 (q@0.9.7, underscore@1.4.4, nopt@1.0.10, rc@0.3.0, cordova-li
b@0.21.6, npm@1.3.4)

我不知道为什么vs-cli会搜索错误的目录。
C:\usr\local\vs-cli

但是实际上npm被安装在以下目录中。
C:\Program Files\nodejs\node_modules\npm

有人能帮我解决这个问题吗?

谢谢。


1
为了更好地诊断此问题,了解您之前是否安装了 CTP2.0 以在 VS 2013 Update 3 中构建 Cordova 应用程序将非常有用。 - Ellen
1
@Ellen。我以前没有安装过 CTP 2.0。但是我重新安装了多次 Visual Studio,仍然无法安装 npm。 - Gowtham
2个回答

5

希望能够看到更详细的构建输出。您可以将构建输出设置为诊断模式(工具\选项\项目和解决方案\构建和运行\MSBuild项目构建输出详细程度)。

尝试从VS中清除您的Cordova缓存,方法是在“工具”\“选项”\“Apache Cordova工具”下进行操作。完成此操作后,重新打开您的项目并尝试进行清理构建。

如果此时仍然遇到问题,您可以尝试按照以下说明手动安装vs-mda。

在VS安装文件夹下查找packages文件夹,其中包含vs-mda(路径类似于下面的示例。请注意,突出显示的文件夹名称将是您系统中唯一的)。

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\wgy514he.01m*\packages\vs-mda
  • 请注意,wgy514he.01m不是确切的文件夹名称,但请查找类似于此的包含packages文件夹的文件夹。

然后从管理员命令提示符中运行以下命令。请注意,在发出命令时,必须为VS安装路径下的vs-mda文件夹提供明确的路径。

npm –g install <full path to packages folder>\vs-mda

如果安装成功,您应该能够构建Cordova项目。如果这解决了您的问题,请让我知道。如果不成功,请传递npm install命令的结果。

谢谢您宝贵的建议。您能帮我解决上面发布的错误信息吗? - Gowtham
@Gowtham - 看起来npm已经配置为安装到与我们的工具预期不同的位置。您可以通过运行“npm config get prefix”进行检查。正如错误消息所指示的那样,VS希望npm包位于C:\ Users \ MyName \ AppData \ Roaming \ npm。您是否记得设置npm安装位置,或者可能是您正在运行的另一个工具做了这件事?解决方法是通过运行“npm config set prefix”,然后跟随文件夹c:\ Users \ yourname \ AppData \ Roaming \ npm来重置它。 - Ellen
我可以构建并在Nexus 5上查看输出。但现在问题是不同的。我无法附加调试器。错误信息:无法附加系统,找不到指定的路径。能帮助我吗? - Gowtham
你是否在运行本地化版本的Visual Studio?即使你已经安装了ENU语言包,如果它是在Cordova工具之后安装的,我们已经看到调试器无法附加的情况。如果是这种情况,请告诉我。 - Ellen

1

我遇到了完全相同的问题,但原因未知。昨天和今天早上都很正常。

以下是我解决问题的步骤:

步骤1-2来自Ellen的回答:

  1. 在VS中清除你的Cordova缓存,路径为Tools\Options\Tools for Apache Cordova\Cordova Tools。

  2. 在你的VS安装文件夹下找到包含vs-mda的packages文件夹。

  3. 将该文件夹复制到构建目标文件夹(C:\Users\MyName\AppData\Roaming\npm\node_modules)。

  4. 构建时出现新错误: 'node' is not recognized as an internal or an external command while using phonegap/cordova

  5. 按照链接中的解决方案执行(将node添加为环境变量)。

  6. 重启计算机。

  7. 成功构建。

  8. 庆祝一下,喝杯咖啡,然后疯狂部署我的两个按钮的cordova应用程序。

注意:我正在使用Visual Studio 2013更新4。Win 7操作系统。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接