我在调试中修复了这个或一个非常类似的问题(我假设在发布版本中)我的 Visual Studio 2015 社区 TACO Apache Cordova 项目(我正在处理的项目或模板中的一个空白新项目 - 这就是大约 24 小时前,我已经从此处提供了输出,下面是空白的),但现在问题“神秘地”再次出现。
Error Cannot find module 'C:\Users\myusername\Documents\Visual Studio 2015\Projects\BlankCordovaApp3TestZ\BlankCordovaApp3TestZ\node_modules\vs-tac\app.js'
(路径的最后一部分不存在,即没有\node_modules\文件夹。这里有一个vs-tac文件夹,当然,
C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\APACHECORDOVATOOLS\packages\vs-tac
,如底部的 BUILD 输出中所述。一些更新的信息:我看到我在卸载/重新安装所有项目插件之前成功调试的项目确实有 node_modules 文件夹,其中包含许多子文件夹,但没有 vs-tac。
我一切正常:在 Ripple、Android AVD、我的 Android 设备上进行调试。两天前,我清除了 Cordova 缓存(出于愚蠢的原因)并开始出现错误。
经过数小时的故障排除后,我想通过运行(我的最后一次尝试)让它再次工作:
npm install -g npm
在此之前,我曾尝试通过 -->
- 再次清除缓存
- 重命名文件夹: C:\Users\myusername\AppData\Local\Microsoft\Phone Tools\CoreCon (以便 VS 重新创建它)
- 重命名文件夹 C:\Users\myusername\AppData\Roaming\Microsoft\VisualStudio\MDA\vs-npm (以便 VS 重新创建它)
- 尝试重新安装 vs-tac(路径上没有引号,没有用,但我还是解决了问题 - 今天我使用了引号)
- 已验证 npmrc 文件已修复:即其内容为 --> prefix=C:\Users\myusername\AppData\Roaming\npm
在再次能够调试之后,我今天决定卸载我的项目的 jquery 模块(2.2.3),看起来我需要卸载 jquery.mobile(1.4.5)和 Bootstrap(3.3.7) ) 也这样做,因为我认为我可能有一个太高版本的 jquery 导致我的项目代码出现问题。我在 2.1.0 重新安装了相同的 jquery。
在刚刚提到的模块卸载/重新安装后,vs-tac 问题又回来了!此外,第一次,在依赖关系树中未安装 NPM 依赖关系问题!经过一番折腾,我从模板中打开了一个新的 Apache Cordova 项目......依赖问题消失了,但 vs-tac 构建问题没有。
我今天再次尝试了上述所有修复尝试,但这次无法解决,到目前为止......
这是今天解决我的问题的一些尝试的输出(来自 Admin Node.js 命令提示符)-->
C:\Windows\System32>npm install -g npm
C:\Users\myusername\AppData\Roaming\npm\npm -> C:\Users\myusername\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js
C:\Users\myusername\AppData\Roaming\npm\npx -> C:\Users\myusername\AppData\Roaming\npm\node_modules\npm\bin\npx-cli.js
+ npm@5.3.0
updated 1 package in 64.141s //This update seems to happen every time I run this command, which is odd for something global
C:\Windows\System32>npm install -g "C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\ApacheCordovaTools\Packages\vs-tac"
C:\Users\myusername\AppData\Roaming\npm\vs-tac-cli -> C:\Users\myusername\AppData\Roaming\npm\node_modules\vs-tac\vs-tac-cli.cmd
+ vs-tac@1.0.42
updated 1 package in 4.406s
环境信息 -->
Microsoft Visual Studio Community 2015 Version 14.0.25431.01 Update 3
Microsoft .NET Framework Version 4.7.02046
Installed Version: Community
Visual Studio Tools for Apache Cordova Update 10
Microsoft Visual Studio Tools for Applications 2015 00322-20000-00000-AA328
JavaScript Language Service 2.0
JavaScript Project System 2.0
In VS Tools > Options > Projects and Solutions > External Web Tools I have:
C:\Program Files\nodejs (at the top, then)
.\node_modules\.bin
$(VSINSTALLDIR)\Web\External
$(PATH)
$(VSINSTALLDIR)\Web\External\git
(all above are checked - not changed recently)
I don't think what is in VS Tools > Options > Tools for Apache Cordova > Environment Variable Overrides is relevant in this case and did not include.
Cordova CLI --> 6.1.1 (per the test project's config.xml)
// From VS Package Manager Conole -->
Path
----
C:\Users\myusername\Documents\Visual Studio 2015\Projects\BlankCordovaApp3TestZ\BlankCordovaApp3TestZ // this is my new template test project
PM> node -v
v6.9.1
PM> npm list cordova
BlankCordovaApp3TestZ@1.0.0 C:\Users\myusername\Documents\Visual Studio 2015\Projects\BlankCordovaApp3TestZ\BlankCordovaApp3TestZ
`-- (empty)
PM> npm list -g cordova
C:\Users\myusername\AppData\Roaming\npm
`-- cordova@7.0.1
PM> cordova platform version android
Installed platforms:
Available platforms:
android ~6.2.2
blackberry10 ~3.8.0 (deprecated)
browser ~4.1.0
webos ~3.7.0
windows ~5.0.0
完整的 BUILD 输出(用于 DEBUG ANDROID DEVICE)-->
1>------ Build started: Project: BlankCordovaApp3TestZ, Configuration: Debug Android ------
1> ------ Ensuring correct global installation of package from source package directory: C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\APACHECORDOVATOOLS\packages\vs-tac
1> ------ Name from source package.json: vs-tac
1> ------ Version from source package.json: 1.0.42
1> ------ Package not currently installed globally.
1> ------ Installing globally from source package. This could take a few minutes...
1> Each package is licensed to you by its owner. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages. Some packages may include dependencies which are governed by additional licenses. Follow the package source (feed) URL to determine any dependencies.
1> ENOENT, no such file or directory ''
1>MSBUILD : cordova-build error : module.js:338
1> module.js:338
1>MSBUILD : cordova-build error : throw err;
1> throw err;
1>MSBUILD : cordova-build error : ^
1> ^
1>MSBUILD : cordova-build error BLD401: Error : BLD00401 : Could not find module 'C:\Users\myusername\Documents\Visual Studio 2015\Projects\BlankCordovaApp3TestZ\BlankCordovaApp3TestZ\node_modules\vs-tac\app.js'. Please Go to Tools --> Options --> Tools for Apache Cordova --> Cordova Tools --> Clear Cordova Cache and try building again.
1> Error Cannot find module 'C:\Users\myusername\Documents\Visual Studio 2015\Projects\BlankCordovaApp3TestZ\BlankCordovaApp3TestZ\node_modules\vs-tac\app.js'
1>MSBUILD : cordova-build error : at Function.Module._resolveFilename (module.js:336:15)
1> at Function.Module._resolveFilename (module.js:336:15)
1>MSBUILD : cordova-build error : at Function.Module._load (module.js:278:25)
1> at Function.Module._load (module.js:278:25)
1>MSBUILD : cordova-build error : at Function.Module.runMain (module.js:501:10)
1> at Function.Module.runMain (module.js:501:10)
1>MSBUILD : cordova-build error : at startup (node.js:129:16)
1> at startup (node.js:129:16)
1>MSBUILD : cordova-build error : at node.js:814:3
1> at node.js:814:3
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========
我今天要尝试的新东西 -->
npm config set prefix %APPDATA%\npm
npm config set cache %APPDATA%\npm-cache
(因为我还在某个时候将 vs-tac 复制到了我的漫游文件夹中)......这对构建没有影响。
此外,我意识到我的 config.xml 已将 CLI 设置为 6.1.1,因此我将其更改为与全局安装的版本 7.0.1 匹配 - 对构建没有影响。
非常感谢任何帮助。
提前致谢。