我正在尝试创建一个NPM脚本命令,该命令可以:
也就是说,我想要
npm run prettier
执行prettier --write '**/*.{js,ts}'
npm run prettier foo.ts
执行prettier --write foo.ts
我已经弄清楚了如何使用shell插值来做到这一点,即
sh -c 'echo --write "${@:-default}"'
输出default
和
sh -c 'echo --write "${@:-default}"' -- value
输出value
这似乎很近。
但是当我尝试定义如下NPM脚本时:
"scripts": {
"prettier": "sh -c 'exec prettier --write \"${@:-'**/*.{js,ts}'}\"' --"
}
并使用npm run prettier foo.js
运行它,它会爆炸:
[error] No matching files. Patterns tried: babel.config.js} !**/node_modules/** ...
也就是说,出于某种未知原因,我想要的文件名中添加了一个杂散的大括号。
现在,我知道我可以通过针对这两种情况使用两个脚本来解决此问题,我对找出此处发生的问题更感兴趣。