我试图创建一个clean
npm脚本,但是我继续在控制台中出现错误,或者没有达到预期的效果。我正在尝试删除除某些配置文件以外的所有根JavaScript文件。
以下内容将忽略否定语法删除所有文件
"clean": "rm -rf lib [a-z].js !*.config.js !*.support.js"
以下内容在控制台中引发错误
"clean": "rm -rf lib !(*.config|*.support).js"
Syntax error: "(" unexpected
答案 0 :(得分:2)
使用rimraf并将复杂的glob模式包装在JSON转义的双引号中,即\"...\"
例如:
"clean": "rimraf lib \"!(*.config|*.support).js\""
此示例(上)
lib
目录。.js
个文件。但是,以.config.js
或.support.js
结尾的文件(例如foobar.config.js
和quux.support.js
)将被取反。编辑:通过npm脚本使用以下bash find命令也可以达到预期效果:
"clean": "find . \\( -name '*.js' -o -name 'lib' \\) -not \\( -name '*.config.js' -o -name '*.support.js' \\) -maxdepth 1 -exec rm -rf {} \\;"
但是,我会选择上述rimraf
方法来实现跨平台(包括Windows cmd.exe
)的更大可移植性