如何在npm脚本中执行bash命令替换

4
我希望只对暂存文件执行代码检查。
因此,我在package.json的scripts中编写了以下命令:
"fix-lint": "tslint $(git diff --name-only --staged) "

执行它:

npm run fix-lint

我遇到了一个错误:
error: unknown option --name-only

我尝试理解和尝试使用简单的命令:

"lss": "echo $(ls)" 

再次执行它:

npm run lss

结果打印出了$(ls),而不是打印目录中的所有文件。
我的问题是如何修复这些命令/脚本? 或者说一般来说如何在npm脚本中执行bash命令替换。
提前感谢。

4
也许 "fix-lint": "sh -c 'tslint $(git diff --name-only --staged)'" - jordanm
太不可思议了!它真的有效!非常感谢你! - Baruch Levin
1个回答

1

只是发布@jordanm的评论来标记此问题已解决。

用途:

"fix-lint": "sh -c 'tslint $(git diff --name-only --staged)'"

要将命令的输出存储到带有日期时间戳的文件中,您可以像这样使用teedate命令:
"scripts": {
  "wdio": "wdio run ./wdio.conf.ts | sh -c 'tee output/spec-reports/scan-$(date \"+%Y-%m-%d--%H-%M\").txt'",
}

@jordanm,请随意将您的评论发布为答案,我会删除我的评论。 - Chris Happy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接