“NODE_OPTIONS”不被识别为内部或外部命令 - 仍然存在问题。

12

我正在使用Windows上的VSCode,在Next.js应用程序中遵循此处的指南。它说要使用以下脚本:

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

但这会导致以下结果:

'NODE_OPTIONS' 不是内部或外部命令,可执行程序或批处理文件。

我知道已经有一个同名问题,但它已经2.5年了,有8k次浏览量,没有被接受的答案。我无法评论添加信息。可以将此标记为重复项,但请至少在其他问题的评论中链接它。

唯一的答案是建议安装另一个(维护模式)依赖项并配置它以更改环境变量。

这和其他研究表明这里存在环境变量的问题。我不能手动设置吗?为什么官方指南没有提到?如何设置正确的环境变量?


可能相关:https://github.com/vercel/next.js/issues/22835 - user3190036
2
一些答案是相关的,因为它们揭示了问题。但是那里的答案都没有帮助解决问题。在其中一个答案中建议使用“SET NODE_OPTIONS ='--inspect'&next dev”来解决错误消息,但应用程序不会启动调试器监听,因此似乎只是隐藏错误而不是修复它。 - user3190036
3个回答

15

有一种方法可以使它正常工作,你可以在这里找到一个类似的问题。

步骤1

npm i cross-env --save-dev

步骤2

编辑你的package.json文件,将dev选项改为如下内容。

    {
      "scripts": {
        "dev": "cross-env NODE_OPTIONS='--inspect' next dev",
        "build": "next build",
        "start": "next start"
      }
    }

第三步

您现在可以在另一个终端中启动NextJS程序。之后,请按照NextJS VSCode调试说明操作。将VSCode连接到正在运行的NextJS实例。

完成。


2

也许这可以帮助我们

在Windows上调试

使用NODE_OPTIONS='--inspect'语法时,Windows用户可能会遇到问题,因为该语法不支持Windows平台。为了解决这个问题,请安装cross-env包作为开发依赖项(使用NPM的--dev或Yarn的-D),并将dev脚本替换为以下内容。

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

无论您在哪个平台上(包括Mac、Linux和Windows),cross-env都会设置NODE_OPTIONS环境变量,并允许您在各种设备和操作系统上进行一致的调试。


1
如果 "cross-env" 未被识别为内部命令,则安装 cross-env,命令为 'yard add cross-env' 然后运行服务器。 - Gera Garcia

0

没有 cross-env,在 Windows 上本地运行

对于任何当前版本的 Windows(这些都使用 Powershell),正确的语法是:

$env:NODE_OPTIONS="INSPECT"

让Linux指令顺利运行

安装WSL,这样您就可以使用bash、Linux node、npm中的Linux二进制文件等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接