文件模式
*匹配单个路径部分中的 0 个或多个字符?匹配 1 个字符[...]匹配字符范围,类似于 RegExp 范围。如果范围的第一个字符是!或^,则它匹配范围中未包含的任何字符。!(pattern|pattern|pattern)匹配与提供的任何模式都不匹配的任何内容。?(pattern|pattern|pattern)匹配提供的模式的零次或一次出现。+(pattern|pattern|pattern)匹配提供的模式的一次或多次出现。*(a|b|c)匹配提供的模式的零次或多次出现@(pattern|pat*|pat?erN)完全匹配提供的模式之一**如果“globstar”在路径部分中是单独的,则它匹配零个或多个目录和子目录以搜索匹配项。它不会爬取符号链接目录。
如果目录匹配,则复制所有内容。因此,您可以只指定 foo 来复制 foo 目录。
排除目录
请记住,!doNotCopyMe/**/* 将匹配 doNotCopyMe 目录中的文件,但不匹配目录本身,因此将创建空目录。解决方案 — 使用宏 ${/*},例如 !doNotCopyMe${/*}。
多个 Glob 模式¶
[
// match all files
"**/*",
// except for js files in the foo/ directory
"!foo/*.js",
// unless it's foo/bar.js
"foo/bar.js",
]
文件宏¶
您可以在文件模式、工件文件名模式和发布配置 URL 中使用宏
${arch}— 展开为ia32、x64。如果无arch,宏将从您的模式中删除,并带有前导空格、-和_(因此,您无需担心并且可以重用模式)。${os}— 根据目标平台展开为mac、linux或win。${platform}— 根据 Node.jsprocess.platform属性展开为darwin、linux或win32。${name}–package.jsonname。${productName}— 已清理的产品名称。${version}${channel}— 从版本中检测到的预发布组件(例如beta)。${env.ENV_NAME}— 任何环境变量。- AppInfo 的任何属性(例如
buildVersion、buildNumber)。