npm:参考通过`npm install -g`安装的脚本中的源存储库

问题描述 投票:0回答:1

假设我的

package.json
中有以下内容:

{
  "bin": {
     "my-command": "bin/my_command.sh"
  }
}

然后使用

npm install -g
安装后,假设我的
my-command
设置正确,我可以从任何地方运行
PATH
。但是,从
my_command.sh
,我如何引用我的项目安装的目录?例如,假设我有一个配置文件,我想在
my_command.sh
中读取该文件,并具有以下项目布局:

my-project/
├── bin
│   └── my_command.sh
├── config.yml
└── package.json

这可能吗?如果是这样,怎么办?我这样做的最初动机是我想将

cd $SOME_DIR/my-project && npm run dev
“别名”到一个可以从任何地方运行的命令,但为此脚本需要知道
my-project
的位置,而我不知道如何这样做。

npm
1个回答
0
投票

您可以在 shell 脚本中使用

dirname
命令来获取脚本的目录。在您的
my_command.sh
脚本中,您可以使用以下行来获取脚本的目录:

SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"

这将为您提供

my_command.sh
所在目录的完整路径。然后,您可以使用此变量来引用项目中的其他文件。例如,要读取
config.yml
文件,您可以执行以下操作:

CONFIG_FILE="$SCRIPT_DIR/../config.yml"

这将为您提供

config.yml
文件的完整路径,无论您从何处运行脚本。

© www.soinside.com 2019 - 2024. All rights reserved.