如何让我的npx脚本在同一软件包/存储库中运行命令?

时间:2019-01-18 21:59:41

标签: npx

说我创建一个my-npx-hello-world回购

它具有以下文件

my-npx-hello-world/
      foo.sh
      index.sh
      package.json

package.json具有

  "bin": "./index.sh"

index.sh调用./foo.sh,即

#!/bin/sh

echo "running foo"
./foo.sh

现在,当我尝试运行此

# npx my-npx-hello-world
running foo
line 4: ./foo.sh: No such file or directory

那是因为它正在我的CWD中而不是在my-npx-hello-world存储库中寻找foo.sh。

我需要做什么,才能让index.sh在同一存储库中执行foo.sh脚本。

1 个答案:

答案 0 :(得分:0)

回答了我自己的问题,我通过找到以下CWD解决了这个问题

BASEDIR=$(dirname "$0")/../lib/node_modules/my-npx-hello-worl

然后

cd $BASEDIR
./foo.sh