这适用于命令行:
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将使用/bin/sh
Bourne shell实现,而不是用户的当前交互式shell,无论是什么(或MS平台上的cmd.exe
(。
在交互式zsh shell中:
% echo $0
zsh
从同一交互式shell运行npm
:
% npm run shell
> so65660483-npm-shell@1.0.0 shell /so/so65660483-npm-shell
> echo $0
sh
cp
在任何情况下都支持复制多个文件而不依赖shell globbing:
cp target/sitemap.xml target/robots.txt ../fs-dtest-app/