我在Windows 10家庭版上使用VS2015 Community Edition,Update 3,最新的TACO和Ionic框架。
我在config.xml中定义了一些before_prepare Cordova钩子,将一些文件复制到www / lib。
我注意到如果我从命令行调用cordova prepare或cordova build,我的钩子会按预期调用,但是当我执行Visual Studio构建时,它不会调用它们。
有一段时间,它实际上是在我的文本编辑器中打开.js文件而不是执行。我发现一篇文章讨论了文件编码中的BOM如何抛弃Visual Studio,因此我确保所有这些.js文件都是ASCII编码。现在文件不会在Notepad ++中自动打开,但它们仍然没有执行,也没有错误。
我尝试过使用和不使用顶部的#!/ usr / bin / env节点行。
当我为Android进行调试构建时,我没有像我在做Cordova CLI构建时看到的那样:
>------ Build started: Project: Wenzaa, Configuration: Debug Android ------
1> ------ Ensuring correct global installation of package from source package directory: C:\Program Files (x86)\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 already installed globally at correct version.
1> ------ Cordova tools 6.1.1 already installed.
1> ------ Build Settings:
1> ------ Build Settings:
1> ------ platformConfigurationBldDir: D:\MOBILEDEV\ionic\Wenzaa\Wenzaa\bld\Android\Debug
1> ------ platformConfigurationBinDir: D:\MOBILEDEV\ionic\Wenzaa\Wenzaa\bin\Android\Debug
1> ------ buildCommand: prepare
1> ------ platform: Android
1> ------ cordovaPlatform: android
1> ------ configuration: Debug
1> ------ cordovaConfiguration: Debug
1> ------ projectName: Wenzaa
1> ------ projectSourceDir: D:\MOBILEDEV\ionic\Wenzaa\Wenzaa
1> ------ npmInstallDir: C:\Users\Jesse\AppData\Roaming\npm
1> ------ language: en-US
1> ------ Platform android already exists
1> ------ Updating plugins
1> ------ Currently installed plugins: cordova-plugin-console@1.0.5,cordova-plugin-device@1.1.4,cordova-plugin-splashscreen@4.0.1,cordova-plugin-statusbar@2.2.1,ionic-plugin-keyboard@2.2.1
1> ------ Currently installed dependent plugins:
1> ------ Currently configured plugins:
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
我尝试通过程序和功能面板修复Apache Tools for Cordova(“修复选项”)。不知道为什么,但似乎我把它安装为一个单独的包AS WELL作为通过Visual Studio组件安装的选项。这可能是吗?
答案 0 :(得分:1)
在回顾Cordova Hooks Guide时,似乎我已经分配了before_prepare钩子,这些钩子实际上不应该在编译期间运行。通过将它们移动到before_compile,它们将运行。但是,依赖包我不经常更改,所以我可以将它们保存在before_prepare中,只需在/更新依赖包时使用cordova prepare CLI命令。
答案 1 :(得分:0)
我现在打了一段非常相似的东西,刚刚找到了一个解决方案,我想知道它是否适用于你。
为了使构建在"当前配置的插件之后不停止:",我必须选择" Device"而不是那里的任何东西。我还将项目设置为启动项目。
现在它构建,运行我的钩子并输出一个包!
希望这有助于你