我正在写一个cordova钩子,它的一部分需要获得项目名称。到目前为止,从其他例子中工作,我有这个。
var cordova_util = require('cordova/src/util');
var projectRoot = cordova_util.isCordova(process.cwd());
var projectXml = cordova_util.projectConfig(projectRoot);
var projectConfig = new cordova_util.config_parser(projectXml);
projectConfig.name();
// Just for example, to get things working first
console.log(projName);
但是一旦我运行cordvoa prepare
,我就会得到这个错误,
module.js:340
throw err;
^
Error: Cannot find module 'cordova/src/util'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/mhartington/Desktop/splashscreens/hooks/after_prepare/assets.js:3:20)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Hook failed with error code 8: /Users/mhartington/Desktop/splashscreens/hooks/after_prepare/assets.js
知道我做错了什么吗?从config.xml
中获取cordova项目名称并将其存储在变量中的正确方法是什么?任何帮助或想法都将受到感谢!
3条答案
按热度按时间6qfn3psc1#
您可以使用模块挂接类型:
在config.xml中:
在您的
scripts/afterPrepareSplash.js
:但是,看起来您正在寻找闪屏支持。我建议您使用
<splash
标记(在cordova-cli 4.0.0中支持并测试,请参阅此处):35g0bw712#
这是我从不同的答案编译的,在2021年工作。不幸的是cordova-utils不在这里了,所以它可能会保存时间的人谁从谷歌登陆这里。我用它来更新Xcode项目中的一些参数插件编译。
您可以看到,我从config.xml中获取了应用程序ID和名称
您可以将它添加到after_prepare挂钩中:
<hook src="scripts/addBuildSettingsToXcode.js" type="after_prepare" />
5cg8jx4n3#
当前的方法是使用
cordova-common
。如需其他指令,请参阅cordova-common NPM page。