You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下执行typechain命令报错:命令未被识别的问题求助

Windows下Uniswap合约类型编译脚本报错的解决思路

问题根源

报错的核心原因是:Windows默认的CMD命令行不支持Bash/Zsh特有的扩展glob语法(比如?(v3-core|v3-periphery)这种分支匹配),同时CMD对单引号的解析逻辑也和类Unix终端不同,导致整个命令被识别为无效指令。

具体解决方法

  • 替换扩展glob为明确路径
    把原来的分支匹配路径拆成两个独立的路径,直接指定v3-core和v3-periphery的目录,TypeChain支持同时传入多个路径参数。修改后的脚本如下:

    "scripts": {
      "compile-contract-types": "yarn compile-external-abi-types && yarn compile-v3-contract-types",
      "compile-external-abi-types": "typechain --target ethers-v5 --out-dir src/abis/types \"./src/abis/**/*.json\"",
      "compile-v3-contract-types": "typechain --target ethers-v5 --out-dir src/types/v3 ./node_modules/@uniswap/v3-core/artifacts/contracts/**/*.json ./node_modules/@uniswap/v3-periphery/artifacts/contracts/**/*.json"
    }
    
  • 统一使用双引号包裹路径
    Windows CMD不识别单引号作为字符串边界,所以把所有路径的单引号替换成双引号,避免路径中的特殊字符被错误解析。

  • 切换到PowerShell或WSL运行
    如果不想修改脚本,可以直接用PowerShell(支持大部分扩展glob语法)或者Windows Subsystem for Linux(WSL)来执行yarn compile-contract-types命令,类Unix环境的终端能正确解析原脚本中的glob语法。

内容的提问来源于stack exchange,提问作者Software14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:24:30