首页 > 解决方案 > yarn run [dev] 执行的命令和它的 vanilla 节点实现有什么区别?

问题描述

这是我的 package.json 文件。如您所见,它有一个开发命令,我可以使用yarn dev执行该命令 包.json

我想如果我复制 yarn dev 将运行的命令 node .electron-nuxt/dev.js --inspect我将能够在 yarn 之外运行命令(将脚本附加到我的调试器与节点)。但是当我复制那个确切的命令时,它没有产生任何错误并且什么也没做。为什么yarn dev可以工作但node .electron-nuxt/dev.js --inspect是否指向同一段代码?

标签: node.jsyarnpkg

解决方案


这是因为 npm/yarn 如何定位可执行文件。它被称为操作模式,基本上是这些包管理器解析和执行模块的方式。

虽然两者的行为有所不同,但底层操作仍然相似。有本地和全局两种模式。包管理器首先尝试在本地模式下解析模块;那来自您运行脚本的目录。如果它没有找到它,那么它会尝试从全局范围内解决它。

所以要回答你的问题,yarn 从全局范围执行文件。

  • 资源

node 如何解析模块Node.js 文档

node_modules 问题Yarn 文档


推荐阅读