Tag: npm

我在React-Native和iOS之间集成的经验

好吧,这是我第一次使用React Native,但不仅是第一次与本地iOS应用程序集成。 项目配置 通常,我从Facebook官方文档开始: 与现有应用程序集成·React Native 从头开始新的移动应用程序时,React Native很棒。 但是,它对于添加… facebook.github.io 也很好。 必备的先决条件是已安装npm ,即JavaScript的软件包管理器。 一切都非常简单: https://nodejs.org/en/download/ 最后我执行: $ npm -v 我看到我已经安装了版本5.6.0 除此之外,建议安装: CocoaPods ,用于Objective-C,Swift和在Objective-C运行时上运行的任何其他语言的依赖项管理器。 为了便于安装,我使用Homebrew (macOS缺少的软件包管理器)进行安装: $ brew安装cocoapods 好的,您可以开始设置项目了。 在iOS项目中,我创建了一个“ js ”文件夹,其中包含React-Native项目。 首先,在此文件夹中,创建具有以下结构的文件“ package.json ”。 请注意,我的应用程序称为“ StoryReact” 该应用无法生成,“ Yoga-internal.h”文件似乎存在错误。 经过一些在线研究之后,我决定在GitHub上创建一个问题,但是我得到了负面的反馈,我将不得不手动更改框架的代码。 但是我不喜欢它作为解决方案,因此我尝试切换到另一个版本 。 然后我删除: “豆荚” “ Podfile.lock” “ js / node_modules” 在阅读到从0.54到最新版本的版本都给出了相同的问题之后,我回到终端并安装了React-Native的版本0.51.0 。 因此,我将执行与之前相同的命令,以使用pod在项目上安装react-native和依赖项,相反,包括对Podfile的更改: $ yarn add […]

使用JavaScript和快捷方式JS创建iOS 12快捷方式

我创建了一个库,可让您使用JavaScript创建快捷方式。 您可以在npm上以@ joshfarrant / shortcuts-js找到它,并在GitHub上找到文档。 注意:这篇文章中的某些图像仅将快捷方式js称为库,但是实际上可以在 @ joshfarrant / shortcuts-js中 找到该库 。 自从今年早些时候与iOS 12一起发布Shortcuts以来,我一直在花很多时间玩Shortcuts应用程序。 我很喜欢创建快捷方式来执行诸如在家中的控制设备之类的事情,将我的睡眠记录到Health应用程序中,并自动记录我的通勤周期并在上班时设置我的Slack状态。 快捷方式应用程序使您可以轻松地直接进入并开始构建功能强大的工作流程来帮助自动化您最常做的事情,但这并不完美。 使用“快捷方式”应用程序几周后,我开始看到“快捷方式”构建界面在哪里崩溃了。 大型快捷键的修改或重构变得很麻烦,尤其是在iPhone上,因为将十几个动作从一个点拖到另一个位置既费时又容易出错。 而且,没有简单的方法可以复制动作块或批量修改它们。 最后,这可能只是因为我正在测试中,所以可能会有一些错误。 作为开发人员,这开始让我感到沮丧。 在我的脑海中,“快捷方式”应用程序中的动作等同于代码行,因此,我渴望能够将常用的动作块组合为更大的功能,并在参数稍有不同的地方重用它们。 这些挫败感使我开始思考。 “快捷方式”应用程序只是一个旨在简化编写代码过程的界面,所以为什么我不能只掏出中间人自己编写代码? 我开始考虑在“快捷方式”应用程序中进行挖掘,以试图弄清快捷方式的结构,以及如何开始在“快捷方式”应用程序之外生成它们。 为什么我不能直接切开中间人并自己编写代码? 我想看的第一处是iCloud Shortcut共享服务。 我希望用来共享快捷方式的URL可能实际上包含一些编码的数据,然后在应用程序导入时将其解码。 不幸的是,很快,URL中的字符串只是一个标识符,而与快捷方式的内容毫无关系,因此我需要在其他地方查找。 几天过去了,当我滚动浏览“快捷方式”列表时,我注意到几周前我下载了一份快捷方式。 通过此快捷方式,您可以将快捷方式备份到iCloud,如果应用程序的数据库遭到损坏,这可能会很有用。 您将备份“快捷方式”,如果发生最坏的情况,则可以将这些文件重新导入“快捷方式”应用程序,一切都会恢复正常。 当然,这些文件必须包含构建快捷方式所需的所有信息。 我运行了备份,在文本编辑器中打开了一个快捷方式,这就是我的初衷。 可读性不强,但是我越来越近了! 首先,我们可以看到从WF开始有许多对属性的引用,自从应用程序作为Workflow出现以来,这些引用就没有明显变化。 另外,从第一行我们可以看到这实际上是一个bplist文件,这是一个二进制属性列表,在Apple生态系统中非常常见。 我将文件扩展名从.shortcut更改为.bplist,然后再次尝试在XCode中打开文件。 🎉 这就是构成快捷方式的所有信息! 我们可以看到用于设置图标的属性,快捷方式接受的输入以及(最重要的是)快捷方式的操作。 为了使内容更具可读性,我使用bplist-parser将bplist转换为JSON。 在这里,我们有一系列非常简单易懂的动作。 每个动作都有一个字符串标识符WFWorkflowActionIdentifier ,以及一个对象/参数字典WFWorkflowActionParameters 。 这些属性是到目前为止我所见过的所有“快捷方式”操作所共有的,并且是定义操作所需的唯一属性。 从这里开始,只需探索其他动作的属性,以及如何处理更复杂的交互(例如在动作中使用变量,以及将动作嵌套在If和Repeat等块内)就可以了。 现在,我已经有了一个用于快捷方式的基本模板,我可以开始编写一些代码来为我生成这些模板。 我从简单开始,编写了一个快速的Node脚本以生成将两个数字加在一起的快捷方式。 经过一些工作,这就是完整的生成的快捷方式的样子。 将这个JSON转换为bplist后,我将它空投到了iPhone上,很高兴看到它可以工作! 现在我有了概念证明,我可以开始构建库了。 我决定选择TypeScript,因为它为像这样的非常结构化的库提供了完美的类型安全性。 […]

客户电话:Jan Klausa,线索

这是我们的 Customer Convos系列 的一部分 。 我们正在分享人们在工作中如何使用npm的故事。 想分享您的想法吗? 给我们打个 电话 。 问:嗨! 你能说出你的名字和你做什么吗? 嗨! 我是Jan,我是Clue的iOS开发人员。 你今天过得怎样? 和我的猫一起变冷 ,所以很好。 告诉我贵公司的npm故事。 我们的产品是iOS和Android的两个移动应用程序。 我们使用JavaScript编写了一些逻辑,因此我们不必在两个平台上都做两次即可共享。 使用真正的软件包管理器来处理该问题,而不是不时有人“嘿,我们应该更新应用程序中的JS,是吗?”非常好。 您能告诉我们有关您想使私人包装真正使您能够做的特定包装的故事吗? 对于我们的每个平台,我们应用程序的某些核心逻辑确实很容易出错并且很难重新编写-但是它具有许多专有逻辑,因此将其私有化是必须具备的。 贵公司是否开源? 您如何协商保密和公开的内容? 我们确实有一个GitHub组织,并且那里没有几个仓库,这些年来我们已经建立了很少的帮助程序,但这不是我们工作的重要部分。 最近,我们一直在内部进行讨论,以找出在更广泛的环境中有用的点点滴滴并将其开源化,但还没有具体的方法。 对于不确定谁可以使用私有软件包的人,您将如何解释用例? 通过类比GitHub私有orgs / repos。 您知道您的源代码在私人仓库中如何吗? 好吧,您的JS库的构建工件也可以! 使用私有软件包的日常经验如何? 相当无缝! 我对Web界面的了解很少(进入私有软件包的点击次数过多,我很想查看版本历史记录),但是否则我不能说我注意到任何问题。 哦! 今年早些时候,成立组织的人离开公司时发生了一个问题。 我记得有人抱怨过将所有权转让为PITA的过程,但是我并没有参与其中,所以我真的不记得具体细节…… 编者注:我们总是很乐意提供帮助! 如果您有任何问题,请通过 support@npmjs.com 与支持 联系 。 您是否建议其他组织或公司使用私有软件包或组织? 为什么? 是。 “请停止在回购之间复制粘贴文件。” 我没问过你是否希望我有任何问题吗? Nyup,我想您已将其覆盖。 您要宣传的贵公司公开做过的任何酷npm东西? 可悲的是……

新来离子 – 不能build立在埃尔卡皮坦的IOS(9),sudo离子是必需的,不推荐使用npmconf

我是一名学生,今天刚从离子开始。 我没有使用命令行的经验,所以我很难在这里。 当我尝试运行基本模板(标签)时: sudo ionic platform add ios sudo ionic build ios sudo ionic emulate ios (如果没有sudo,这些都不起作用)。 最后一个在日志中产生这个(上面的其他东西): ** BUILD SUCCEEDED ** No target specified for emulator. Deploying to iPhone-6 simulator An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159): Invalid device state An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159): Invalid device state […]

元数据版本与模块node_modules / ng2-emoji / ng2-emoji.d.ts版本不匹配,find版本3,预期1

元数据版本与模块node_modules / ng2-emoji / ng2-emoji.d.ts版本不匹配,find版本3,预期1 离子构buildandroid –release –prod 错误日志 [17:18:28] build prod failed: Metadata version mismatch for module D:/projects/siilo/node_modules/ng2-emoji/ng2-emoji.d.ts, found version 3, expected 1 [17:18:28] ionic-app-script task: "build" [17:18:28] Error: Metadata version mismatch for module D:/projects/siilo/node_modules/ng2-emoji/ng2-emoji.d.ts, found version 3, expected 1 Error: Metadata version mismatch for module D:/projects/siilo/node_modules/ng2-emoji/ng2-emoji.d.ts, found version 3, expected 1 at StaticReflector.getModuleMetadata […]

反应原生UIExplorer将无法打开

我正在尝试在Xcode上查看UIExplorer。 我遵循这个例子,它应该很简单。 它说克隆react-native,cd到目录,npm安装并运行npm start。 但是,当我运行npm开始,我得到以下错误: react-native@0.8.0 start / Users / chiMarvine / Projects / react-native ./packager/packager.sh || 真正 /Users/chiMarvine/Projects/react-native/packager/packager.js:233 const dumpName ='/ tmp / dump_'+ Date.now()+'.json'; ^^^^^ SyntaxError:在严格模式下使用const。 在exports.runInThisContext(vm.js:73:16) 在Module._compile(module.js:443:25) 在Object.Module._extensions..js(module.js:478:10) 在Module.load(module.js:355:32) 在Function.Module._load(module.js:310:12) 在Function.Module.runMain(module.js:501:10) 在启动(node.js:129:16) 在node.js:814:3 我不知道如何解决这个问题,构build成功,但模拟器说: 确保以下内容: 节点服务器正在运行并且在同一networking上可用 – 运行 从反原生根开始的“npm start” – AppDelegate中正确设置了节点服务器URL URL: http:// localhost:8081?examples / UIExplorer / UIExplorerApp.ios.bundle?platform = ios&dev = […]

cordovaIOS错误build立Images.xcassets

我花了很多时间试图解决这个问题。 我解雇了cordova,因为埃尔卡皮坦现在和我的麦克马尔有问题。 我得到它安装,但我现在必须使用sudo cordova。 我尝试了以下内容: sudo cordova platform remove ios sudo cordova platform add ios sudo cordova build ios 这给了我以下输出: ** BUILD FAILED ** The following build commands failed: CompileAssetCatalog build/emulator/<AppName>.app <AppName>/Images.xcassets (1 failure) ERROR building one of the platforms: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/cordova/build-debug.xcconfig,-project,<AppName>.xcodeproj,ARCHS=i386,-target,<AppName>,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/sharedpch You may not have the required […]