Nativescript 应用程序未在终端中显示 console.log 消息

Nativescript application not showing console.log messages in terminal

我创建了一个新的 nativescript 应用程序 (ns create xxxx),然后 运行 将其加载到模拟器中 (ns 运行 ios)。

一旦 运行ning,我在任何地方添加控制台日志(在初始化时,或作为按钮单击等的操作),它不会输出到控制台。

我在 Stack 上发现了一个提出类似问题的帖子,但看起来他们从未得到太多反馈(其他人也报告了这个问题)。

我已经在 VSCode 终端和常规终端中尝试了 运行ning(所以这不是 VSCode 的事情)。我完全不知道是什么原因造成的。

这看起来很奇怪,因为 console.logs 通常工作正常。请检查以下内容

  1. 请确保您不要 运行您的应用程序处于发布模式或带有 --env.uglify 标志,因为它可能会导致日志记录丢失

  2. 禁用模块热更换选项。有时它会导致问题。

  3. 一定要使用正确的console操作。例如 console.debug 不受支持。您可以找到完整列表 here

  4. 在下一个 运行 之前删除 node_modulesplatformshooks 文件夹。以防万一

  5. 你没有 console 对象被其他对象覆盖了吗?

  6. 尝试用 alert 更改您的 console.log 命令并检查它是否有效。

请检查完此清单中的所有要点后再回来,还请添加来自您的 ns doctor 命令的报告,让我们看看是否可以继续

更新:

由于您使用的是基于 M1 处理器的 MacBook,因此您的问题似乎与此问题有关:

https://github.com/NativeScript/nativescript-cli/issues/5454

不幸的是,我现在唯一能给你的建议是关注线程以获得一些解决方案或解决方法

我稍后加入,但这可能会帮助遇到同样问题同时也使用基于 M1 的处理器的其他人。

对我来说,使用 console.log() (on iOS) 没有在 Visual Studio 代码中显示任何输出,但确实显示了在一个单独的 Xcode 构建中。所以输出肯定在那里。

我不久前遇到了一个 SO 答案(不记得到底是哪个) 有这个解决方法,它在一个单独的终端中显示输出 window .

假设我们有这个:

打开一个新终端window (最好在 VS Code 之外。你马上就会明白为什么),然后 运行 这个命令:

log stream --level debug --predicate 'senderImagePath contains "NativeScript"'

它将在终端 window 中显示输出,如下所示:

现在,老实说,我认为这会更容易阅读 (尤其是当您在较小的屏幕上记录 JSON 数据时) 如果时间戳之间的所有内容并且“CONSOLE LOG”被排除在外。不幸的是,我还没有弄清楚该怎么做。

我通过将默认设置为 trueVue.config.silent 更改为 false 来解决问题。

您可以在 app.js 中的 new Vue(...)

之前添加 Vue.config.silent = false;

例如:

import Vue from 'nativescript-vue'

import Home from './components/Home'

Vue.config.silent = false;

new Vue({
  render: (h) => h('frame', [h(Home)]),
}).$start()

编码愉快!