使用 package.json 脚本在同一目录中复制多个文件?

Copying multiple files in the same directory using a package.json script?

这适用于命令行:

cp target/{sitemap.xml,robots.txt} ../fs-dtest-app/

但是如果我将命令放在 package.json 中的脚本标记内,如下所示:

  "scripts": {
    "c": "cp target/{sitemap.xml,robots.txt} ../fs-dtest-app/"
  },

发生这种情况:

ole@mkt:~/Temp/dtest/fs-dtest-md$ cp target/{sitemap.xml,robots.txt} ../fs-dtest-app/
ole@mkt:~/Temp/dtest/fs-dtest-md$ npm run c

> @fireflysemantics/fs-dtest-md@1.0.1 c /home/ole/Temp/dtest/fs-dtest-md
> cp target/{sitemap.xml,robots.txt} ../fs-dtest-app/

cp: cannot stat 'target/{sitemap.xml,robots.txt}': No such file or directory

想法?

npm will use the /bin/sh Bourne shell implementation 而不是用户当前的交互 shell,无论它是什么(或 cmd.exe 在 MS 平台上)。

在交互式 zsh 中 shell:

% echo [=10=]
zsh

运行 npm 来自同一个互动 shell:

% npm run shell

> so65660483-npm-shell@1.0.0 shell /so/so65660483-npm-shell
> echo [=11=]

sh

cp 在任何情况下都支持复制多个文件而不依赖 shell globbing:

cp target/sitemap.xml target/robots.txt ../fs-dtest-app/