gpt4 book ai didi

javascript - 如何在 npm 脚本 glob 模式中使用否定?

转载 作者:行者123 更新时间:2023-11-29 20:46:24 27 4
gpt4 key购买 nike

我正在尝试创建一个 clean npm 脚本,但我继续在控制台中收到错误或者没有达到预期的效果。我正在尝试删除除某些配置文件之外的所有根 JavaScript 文件。

以下删除所有忽略否定语法的文件

"clean": "rm -rf lib [a-z].js !*.config.js !*.support.js"

以下在控制台中抛出一个错误

"clean": "rm -rf lib !(*.config|*.support).js"
Syntax error: "(" unexpected

最佳答案

利用rimraf并将复杂的 glob 模式包装在 JSON 转义双引号中,即 \"...\"

例如:

"clean": "rimraf lib \"!(*.config|*.support).js\""

这个例子(上)

  1. 从项目目录的根目录中删除 lib 目录。
  2. 从项目目录的根目录中删除所有 .js 文件。但是,以 .config.js.support.js 结尾的文件(例如 foobar.config.jsquux.support。 js) 将被否定。

编辑:使用以下 bash find通过 npm 脚本的命令也可以达到预期的结果:

"clean": "find . \\( -name '*.js' -o -name 'lib' \\) -not \\( -name '*.config.js' -o -name '*.support.js' \\) -maxdepth 1 -exec rm -rf {} \\;"

不过,我会选择前面提到的 rimraf 方法,以获得更好的跨平台可移植性,包括 Windows cmd.exe

关于javascript - 如何在 npm 脚本 glob 模式中使用否定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54385549/

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