node.js - yarn run [dev] 执行的命令和它的 vanilla 节点实现有什么区别?
问题描述
这是我的 package.json 文件。如您所见,它有一个开发命令,我可以使用yarn dev执行该命令
我想如果我复制 yarn dev 将运行的命令 node .electron-nuxt/dev.js --inspect我将能够在 yarn 之外运行命令(将脚本附加到我的调试器与节点)。但是当我复制那个确切的命令时,它没有产生任何错误并且什么也没做。为什么yarn dev可以工作但node .electron-nuxt/dev.js --inspect是否指向同一段代码?
解决方案
这是因为 npm/yarn 如何定位可执行文件。它被称为操作模式,基本上是这些包管理器解析和执行模块的方式。
虽然两者的行为有所不同,但底层操作仍然相似。有本地和全局两种模式。包管理器首先尝试在本地模式下解析模块;那来自您运行脚本的目录。如果它没有找到它,那么它会尝试从全局范围内解决它。
所以要回答你的问题,yarn 从全局范围执行文件。
- 资源
node 如何解析模块Node.js 文档
node_modules 问题Yarn 文档
推荐阅读
- javascript - 如何通知用户建议列表已到达与在搜索框中输入的文本相对应
- flutter - DateTime.now() 没有正确更新
- jsdoc - 使用 JSDoc 记录此内容
- ruby - Heroku - 更新到 Heroku-20 后的应用程序错误
- python - RasterioIOError:尝试创建新的 tiff 文件失败:权限被拒绝
- javascript - 如何在不同的 Route 或 Page 上刷新 livewire 组件?
- css - 了解最小颜色:每个@media 请求 3 个参数
- go - 检查 IsZero 时使用反射恐慌按名称获取字段
- angular - Angular 实现 Observable
作为同步字符串 [] 数组 - flutter - 从父小部件更新 ModalBottomSheet 内按钮的可见性