带有纱线运行构建系统的 Volta 找不到指定的路径

Posted

技术标签:

【中文标题】带有纱线运行构建系统的 Volta 找不到指定的路径【英文标题】:Volta with yarn run build system cannot find the path specified 【发布时间】:2021-05-08 11:44:18 【问题描述】:

这是我第一次使用Volta,请多多包涵。

我已经全局安装了 typescript、node 和 yarn

yarn -v >> 1.22.10
node -v >> v14.15.4
npm -v >> 6.14.10

这些命令在我的项目文件夹内外工作,结果相同。 但是,如果我在 vscode 内部使用yarn build,则输出会显示错误: System cannot find the path specified

如果我从外部 vscode 做同样的事情,我会得到相同的结果:

如果我去vscode里面的node_modules/.bin文件夹,这个命令还是不行(这次我只运行tsc)。错误如下:

The term tsc is not a cmdlet recognized command, function, script file or executable program. Verify if the name is written correctly or, if there is an access route, verify the route is correct and try again.

但是如果在 cmd 窗口中从 vscode 外部执行命令,它会按预期工作,因为 tsc 确实存在:

此外,如果我在 vscode 中运行 npm run build,该命令将按预期工作。这是我的 package.json:


  "name": "socket-server",
  "version": "1.0.0",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "license": "MIT",
  "scripts": 
    "build": "tsc",
    "dev": "yarn build --watch --preserveWatchOutput",
    "lint": "eslint src --ext js,ts",
    "test": "jest"
  ,
  "devDependencies": 
    "eslint": "^7.19.0",
    "jest": "^26.6.3",
    "typescript": "^4.1.3"
  ,
  "volta": 
    "node": "14.15.4",
    "yarn": "1.22.10"
  

我确实怀疑 volta,因为 volta 正在管理 yarn 版本,但没有 npm;但我真的不知道是什么问题。

我使用的是 Windows,我的 PATH 包含以下条目:

我做错了什么?

编辑:是的,Shell 命令快捷方式存在:

【问题讨论】:

【参考方案1】:

问题在于 vsCode,你应该在 cmd 中运行 code .,因为如果你打开命令面板 (Ctrl + Shift + P) 并输入

Shell Command: Install 'code' command in PATH

你不会注意到,在 cmd 中运行code . 后,当你应该看到像这张照片时,一切都会好起来的

【讨论】:

感谢您为我解决了一些问题,我不得不编辑这个问题,因为它有点误导,我遇到了 yarn build 的问题,这个命令确实存在,但它似乎不起作用在vscode里面。好像是因为Volta,vscode无法识别脚本里面的命令tscyarn run build=tsc);但tsc 确实在 vscode 之外工作(在node_modules\bin 内部)。我真的不知道究竟是什么导致了这个问题,我怀疑是 volta 因为npm run build 在 vscode 中完美运行,但不适用于 yarn。 w0o0ow 赏金已过期?我只是为了赏金+50回答了这个问题 我已经通过code . 打开了该项目,并确保我的快捷方式与您的相同。但这似乎不相关,因为问题仍然存在 我用一张图更新了答案,快捷方式就在那里 如果你在终端运行volta install node@14如果vscode,你会再次看到错误吗?【参考方案2】:

我不确定是否适用于 Windows,但通常node_modules/.bin 中的脚本是脚本的符号链接。例如,node_modules/.bin/tsc 可能指向 node_modules/typescript/bin/tsc

它在目录之外工作,因为它使用tsc 的全局版本。

看到您的错误,我怀疑符号链接已损坏。也许只是尝试删除node_modules 目录并重做npm install

PS:我不熟悉 Volta,但它看起来更像是一个 NPM 问题。

【讨论】:

我更新了这个问题,因为它具有误导性,这个问题与确实存在的脚本命令 yarn build 有关。不幸的是,删除 node_modules 并不能解决问题

以上是关于带有纱线运行构建系统的 Volta 找不到指定的路径的主要内容,如果未能解决你的问题,请参考以下文章

使用纱线工作区时,tsc 在 apollo-server 中找不到 express 的声明文件

纱线在构建中找不到模块'logform'winston

server2012系统下运行bat文件,出现系统找不到指定的路径

纱线运行 someScript 输出“找不到命令:导出”

开始:此命令无法运行,因为错误:系统找不到指定的文件

纱线找不到模块(html-to-text)