我正在尝试将 npm 作为构建工具。
我遇到的一个障碍是我需要将 javascript 文件从一个文件夹复制到另一个文件夹。源文件夹包含打字稿文件、javascript 文件和地图文件,但在目标文件夹中我只对 javascript 文件感兴趣。
我不想为每个文件制作复制语句,但想复制所有 .js 文件。另外,我的源文件夹包含也包含 javascript 文件的子文件夹。这些也需要复制,并维护子文件夹结构。
我尝试过的是使用NCP https://github.com/AvianFlu/ncp有过滤器,但我无法让过滤器工作。我已经测试了过滤器中使用的正则表达式,它似乎工作正常。测试进行于正则表达式测试器 http://www.regextester.com用正则表达式.*\.js$
和测试字符串像main.ts
, main.js
main.js.map
等等,并且仅匹配 .js 字符串。
我的包 json 包含以下内容(缩写):
{
"scripts": {
"copy": "ncp scripts wwwroot/scripts --filter=\".*(\\\\.js$)\""
},
"devDependencies": {
"ncp": "2.0.0.0"
}
}
由于我的正则表达式位于字符串中的字符串中,因此我对其进行了双重转义。我还尝试过其他变体,例如:
--filter=/.*\.js$/g - compilation error
--filter=/.*\\.js$/g - no files copied
--filter=\".*\\.js$\" - no files copied
--filter=\"/.*\\.js$/g\" - no files copied
(no filter) - all files copied
我绝对没有与 NCP 结婚。如果其他东西效果更好,那么我会使用它。
那么:如何在 package.json 脚本部分中仅将具有特定扩展名的文件复制到另一个文件夹?我很确定我忽略了一些显而易见的事情......
警告! cpx 软件包似乎已被放弃。 cpy-cli、copyfiles 和其他解决方案在此处的评论或下面的答案中列出。
cpx https://github.com/mysticatea/cpx可能是一个很好的替代品。
它有一个 CLI,允许您使用 glob 而不是正则表达式,可以保留目录树,并且在我写这篇文章时相对最新......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)