【问题标题】:nativesctip 8 does not have platform dependencynativesctip 8 没有平台依赖性
【发布时间】:2022-01-13 03:48:37
【问题描述】:

这是我在 NativeScript (ns) 上的第一个项目,所以我对它有点陌生,不知道 ns 世界中的一切是如何运作的。

对于我的项目,我为 ns+vue+ts 项目设置了最新的 ns 版本,即 8.1.5。

在我开始添加一些库之前一切都很好。第一个警钟是安装和设置nativescript-google-maps-sdk,每个教程和官方文档都告诉您需要以这样的方式打开SDK(示例可能会有所不同,但他们都想要platform):

import * as platform from "platform";
if (platform.isIOS) { 
    GMSServices.provideAPIKey("PUT_API_KEY_HERE");
}
Vue.registerElement('MapView', () => require('nativescript-google-maps-sdk').MapView);

但是我安装的 NativeScript 没有platfrom,而是我让它使用

import {isIOS } from "@nativescript/core";
if (isIOS) { 
    GMSServices.provideAPIKey("PUT_API_KEY_HERE");
}
Vue.registerElement('MapView', () => require('nativescript-google-maps-sdk').MapView);

我还没有解决的第二个问题是nativescript/geolocation。安装该软件包后,我无法运行我的 ios 模拟器,它失败并出现错误:

ERROR in ./node_modules/nativescript-geolocation/geolocation.ios.js 8:15-34
Module not found: Error: Can't resolve 'platform' in '/Users/myuser/projects/app/node_modules/nativescript-geolocation'

是我做错了什么,还是 ns 8.1.5 版还不支持????

【问题讨论】:

    标签: nativescript nativescript-vue


    【解决方案1】:

    我刚刚开始将一个非常大的 {N} 6.8 应用程序迁移到 8.1,所以我想我会检查您的问题,因为它也适用于我。我看到了同样的错误,但如果您需要确定操作系统,您可以使用 Application 类。见https://github.com/NativeScript/nativescript-cli/issues/5423

    2021 年 12 月 15 日编辑:

    当我涉足自己的迁移时,我发现您必须查看源代码才能查看特定类的导出。平台还在,但没有直接导出。相反,您必须导入各种元素。因此,这是可行的:

    import { isAndroid, isIOS } from '@nativescript/core';
    

    这真的很不幸,因为它需要大量的搜索和测试,并进行详细的编码更改。到目前为止,我还没有找到任何可行的迁移指南。这个84-minute YouTube video 值得一看,但不会让你了解这些细节。

    如果您刚刚开始,则必须了解新语法并知道大多数现有示例和文档都需要迁移。

    2021 年 12 月 15 日编辑

    随着我的继续,我意识到有些名称根本没有定义。所以,平台确实还在,你可以这样来:

    const platform = require("@nativescript/core/platform");
    

    同样,如果您需要文件系统或 KnownColors:

    const fs = require("@nativescript/core/file-system");
    const KnownColors = require("@nativescript/core/color/known-colors");
    

    如果您尝试从 @nativescript/core 导入无法识别的名称,您会在构建输出中获得已知名称列表。如果您在那里没有看到您要查找的内容,您可能需要求助于完全限定的 require(对于 JavaScript)或 import (TypeScript)。

    【讨论】:

    • 所以如果我理解正确,大多数库不支持最新版本的 nativesctipt,或者至少没有更新他们的文档。对于之前已经使用 ns 措辞的人来说,这可能没问题。但是对于刚开始的人来说,这是一个很难的出价:) 无论如何谢谢!
    • @BogdanDubyk - 我使用 NativeScript 已经 4 年多了,我的经验是你必须学习如何解释你找到的信息。例如,在 JavaScript 和 TypeScript 之间的示例,以及 V7 之前和更高版本的示例。 NativeScript 文档本身非常好。祝你好运!
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2013-04-09
    • 2020-02-04
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多