gpt4 book ai didi

bash - Node.js 生成和 `*` 用于选择多个文件

转载 作者:太空宇宙 更新时间:2023-11-03 22:56:38 25 4
gpt4 key购买 nike

如果我创建一个 test 目录并将 foo.js 放入其中,那么我就可以运行

node test/*

运行目录中的所有文件就好了。但是如果在父目录中创建一个js文件并让它执行

spawn('node', ['test/*']);

然后它给我 stderr 输出

Error: Cannot find module '/mypath/test/*'

我开始意识到这是因为 * 是 shell 提供的便利(对吗?)。所以,我的问题是:

  1. 有什么方法可以在不使用 fs 读取 test 目录内容的情况下完成我想要的 spawn 操作?
  2. shell 到底如何翻译 test/*,以及是否可以从我的应用程序中利用这种强大的功能?

最佳答案

* 功能(以及 ?、{} 等)由 Glob 提供.

幸运的是,有人为 glob 进行了 Node.JS 绑定(bind) - node-glob .

使用npm install glob安装它,然后像这样使用它(未经测试):

var glob = require('glob');
glob('test/*', null, function (err, matches) {
matches.forEach(function (match) {
spawn('node', match);
});
})

关于bash - Node.js 生成和 `*` 用于选择多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5509009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com