使用“next”运行时,Nextjs 未记录 console.log 或 console.error

Posted

技术标签:

【中文标题】使用“next”运行时,Nextjs 未记录 console.log 或 console.error【英文标题】:Nextjs not logging console.log or console.error when running with "next" 【发布时间】:2020-07-29 02:35:42 【问题描述】:

所以我的server.js 文件中有这个日志:

  console.info("LOOGGGGGSSSS")
  console.warn("LOOGGGGGSSSS")
  console.log("LOOGGGGGSSSS")
  console.error("LOOGGGGGSSSS")

我的package.json 有脚本:

  "scripts": 
    "dev": "next",
    "start": "next start"
  

当我使用 npm run start 运行服务器时,一切正常,我可以看到日志,但 npm run dev 没有 console.log()console.error() 工作。

我尝试了选项 quiet true 和 false 但仍然无法正常工作:

const nextJsApp = next(dev, quiet: false); // no logs in terminal

const nextJsApp = next(dev, quiet: true); // still no logs in terminal

我的next.config.js

require("dotenv").config();
const withCSS = require('@zeit/next-css');
const webpack = require('webpack');

const apiKey =  JSON.stringify(process.env.SHOPIFY_API_KEY);

module.exports = withCSS(
    webpack: (config) => 
        const env =  SHOPIFY_API_KEY: apiKey ;
        config.plugins.push(new webpack.DefinePlugin(env));
        return config;
    ,
);

【问题讨论】:

next 命令不会运行您的server.js 文件。如果你想运行server.js,运行node server.js。更多信息在这里:nextjs.org/docs/advanced-features/custom-server 【参考方案1】:

转到您运行npm run dev 的终端。 您应该可以在那里看到您的控制台日志。

【讨论】:

【参考方案2】:

如果你想在本地开发模式下查看你的服务器日志,你不需要使用你自己的服务器。您可以像这样在 package.json 中编辑开发脚本:

"dev": "NODE_OPTIONS='--inspect' next dev",

当您运行您的开发 (npm run dev) 时,您可以在 Chrome 中访问:chrome://inspect

在远程目标下方,点击inspect

【讨论】:

不适合我:'NODE_OPTIONS' 未被识别为内部或外部命令、可运行程序或批处理文件。 这不起作用【参考方案3】:

我使用包 cross-env 来避免在使用不同的操作系统时出现一些问题。

"dev": "cross-env NODE_OPTIONS='--inspect' next dev"

工作正常,我现在可以看到我的所有日​​志与 Next 日志混合在一起。

【讨论】:

【参考方案4】:

作为@AryanJ-NYC mentioned,在Next.js 中使用custom server 时,您需要更新package.json 中的脚本以运行server.js 文件。

"scripts": 
    "dev": "node server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js"

【讨论】:

以上是关于使用“next”运行时,Nextjs 未记录 console.log 或 console.error的主要内容,如果未能解决你的问题,请参考以下文章

Next JS - ReferenceError:文档未定义[重复]

NextJS:使用“redux-observable”时,“HYDRATION”操作未接收服务器有效负载

NextJS Webworker`未定义窗口`

React 和 Next.js 中的窗口未定义错误 [重复]

ReferenceError: localStorage 未定义。在 Nextjs 中使用本地存储

Firebase 存储图像未显示在 nextjs 应用程序中