与:
在
bin
中的自定义 npm 包之一中具有以下 package.json
命令:
{
"bin": {
"repo_check": "./bin/health-check.js"
},
"scripts": {
"check:health": "$npm_package_bin_repo_check",
}
}
运行时
npm run check:health
按预期运行
但是当我将 bin 命令从下划线(
_
)更改为破折号(-
)(如repo-check
)并重试时,它会立即结束
> @xkeshav/[email protected] check:health
> $npm_package_bin_repo_check
也尝试过
$npm_package_bin_repo-check
但它会抛出错误
sh: 1: -check: not found
那么这是不允许写
-
还是这里出了什么问题?
连字符
-
无效。
当您使用 $npm_package_bin_repo-check 等环境变量在脚本中引用 npm 包的 bin 命令时,连字符会被解释为特殊字符或标志,从而导致错误。
因此,您可以做的就是像最初一样对 bin 命令和脚本引用使用下划线:
{
"bin": {
"repo_check": "./bin/health-check.js"
},
"scripts": {
"check:health": "$npm_package_bin_repo_check"
}
}
或者,如果您确实需要使用连字符,那么您可以直接引用脚本中的路径,如下所示:
{
"bin": {
"repo-check": "./bin/health-check.js"
},
"scripts": {
"check:health": "repo-check"
}
}
这将在您运行
npm run check:health
时直接运行 repo-check 二进制文件。