如何通过./index运行Node CLI?配置后报错求助
解决Node CLI通过
./index运行的问题 问题原因
你在package.json的bin字段中配置的"./index"是全局命令名,npm执行npm link或全局安装后,会把这个命令链接到系统全局bin目录,所以直接输入index能正常运行。但当前目录下并没有名为index的可执行文件,因此执行./index会提示找不到文件。
解决方法
方法1:手动创建当前目录的可执行index文件
- 在项目根目录创建一个名为
index的文件(不带.js后缀),写入以下内容:
#!/usr/bin/env node require('./index.js')
- 给该文件添加执行权限:
chmod +x ./index
完成后,执行./index就能直接运行你的CLI了。
方法2:利用npm本地安装生成链接
- 修改
package.json的bin字段,将命令名改为简洁名称(比如mycli):
{ "name": "cli", "version": "1.0.0", "description": "", "main": "index.js", "bin": { "mycli": "index.js" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
- 在项目根目录执行本地安装命令,npm会在
node_modules/.bin目录下生成对应命令链接:
npm install . --local
- 创建软链接映射到
./index:
ln -s ./node_modules/.bin/mycli ./index
之后执行./index即可运行CLI。
内容的提问来源于stack exchange,提问作者Coders Tech
相关产品推荐
相关产品推荐

