≪ Today I learned. RSS購読
公開日
タグ
JavaScript, Node.js
著者
ダーシノ(@bc_rikko)

Node.jsの引数にパスを渡すときは引用符でくくる

引用符なしの場合、src/**/*.jsが文字列としてではなく、このパターンに一致するパスが引数に渡ってしまう。そのため「ダメな例」でtargetを出力するとsrc/**/*.jsではなくsrc/index.jsという文字列になる。

// glob.js
import { globSync } from 'node:fs'
import { argv } from 'node:process'

const [_node, _file, target] = argv

const paths = globSync(target)
console.log(paths)

ダメな例(引用符なし)

$ node glob.js src/**/*.js
["src/index.js"]

良い例(引用符あり)

$ node glob.js 'src/**/*.js'
[
  "src/index.js",
  "src/path/index.js",
  "src/path/to/index.js"
]