Node.js 生成参数导致 git update-index 失败

我有一个简单的函数来运行git update-index。


exports.gitUpdateIndex = (path, pattern) => {

  return new Promise((resolve, reject) => {

    const error = [];

    const opt = {

      cwd: path

    };

    const process = spawn("git", ["update-index", "--chmod=+x", pattern], opt);

    process.on("close", () => {

      if (error.length > 0) {

        reject(error);

      }

      resolve();

    });

    process.stderr.on("data", data => error.push(data.toString().trim()));

  });

};

我试着这样称呼它——


await gitUpdateIndex(dirPath, "./*.sh");

但这会引发错误,例如-


[

  "Ignoring path *.sh\nfatal: git update-index: cannot chmod +x '*.sh'"

]

编辑:

似乎将绝对路径传递给函数会修复它而不是 unix glob 模式。


await gitUpdateIndex(dirPath, "C:\\test\\hello.sh");


慕侠2389804
浏览 89回答 1
1回答

开满天机

您必须将每个参数定义为单独的数组元素:spawn("git", ['update-index', '--chmod=+x', pattern], opt)你目前正在做相当于git 'update-index --chmod=+x ./*.sh'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript