发布npm CLI包后执行npx命令报错:'/node'未被识别
解决npx执行CLI工具时'"/node"'路径错误的问题
以下是针对该错误的具体排查和解决步骤:
检查package.json的bin字段配置
确认package.json中bin字段指向的脚本路径无多余引号或转义字符,正确格式示例:"bin": { "capycenta-app": "./dist/cli.js" }无需手动给路径加引号,npm会自动处理含空格的路径场景。
验证CLI入口文件的shebang行
确保CLI入口文件(如dist/cli.js)的第一行是标准shebang声明:#!/usr/bin/env node不要添加任何引号、斜杠或额外字符,这行是引导系统正确调用node解释器的关键,格式错误会导致Windows下解析路径时生成异常的
"/node"字符串。重新打包发布并清理缓存
- 重新编译TypeScript代码到目标目录(如执行
tsc命令) - 执行
npm version patch更新版本号,避免缓存干扰 - 重新发布到npm:
npm publish - 使用带版本号的命令测试:
npx capycenta-app@latest serve,确保拉取最新版本。
- 重新编译TypeScript代码到目标目录(如执行
本地预发布测试
发布前可通过npm link将CLI工具链接到全局,直接执行capycenta-app serve测试。若问题依旧,打开全局npm目录下生成的capycenta-app.cmd文件,检查其中的node调用路径是否正常——正常的.cmd脚本中node路径应为"%~dp0\node.exe"这类格式,而非错误的"/node"。
内容的提问来源于stack exchange,提问作者Marcu Adrian
相关产品推荐
相关产品推荐

