NPM包CLI工具在Windows下未通过Node执行的问题排查
NPM CLI包Windows执行问题解决方案
核心问题:脚本缺少Shebang声明
你的index.js脚本顶部没有添加Shebang行,这是npm在Windows上生成带Node执行路径的.cmd脚本的必要标识。
修复步骤
- 在
index.js的第一行添加以下代码:
这行代码会告诉npm,该脚本需要通过Node.js执行,生成.cmd文件时会自动引入指向Node.exe的#!/usr/bin/env node%_prog%变量。 - 重新全局安装包:
npm uninstall -g . && npm install -g . - 此时查看
%APPDATA%\npm\boo.cmd,最后一行会变为:
脚本会强制通过Node.js运行,不再调用默认关联的编辑器。"%_prog%" "%dp0%\node_modules\boo\index.js" %*
补充说明
Shebang行在类Unix系统中直接生效,允许脚本直接执行;在Windows系统中,npm会识别这一行,自动调整生成的批处理脚本逻辑,确保用Node.js执行你的CLI工具。package.json的bin配置无需额外修改,保持现有设置即可。
内容的提问来源于stack exchange,提问作者Seva Alekseyev
相关产品推荐
相关产品推荐

