如何复制npm pack行为,将当前目录打包进package目录并输出到stdout?
实现类似npm pack的tar打包(将内容放入package目录)
我刚好处理过类似的需求,其实不用额外创建临时目录,tar自带的--transform(简写--xform)参数就能帮你实现这个效果,它可以在打包过程中修改文件的路径前缀。
你只需要调整原来的命令,加上路径转换规则就行:
tar --exclude='./node_modules/' -cv . --transform='s,^.,package,' | gzip > archive.tar.gz
参数解释:
--transform='s,^.,package,':这是一个sed风格的替换规则,s表示替换操作,^.匹配每个文件路径的开头(也就是当前目录下的所有文件/文件夹的根路径),把它替换成package,这样所有打包的内容都会被放到package/目录下。
你可以测试一下:解压生成的archive.tar.gz后,所有文件都会出现在package目录里,和npm pack生成的压缩包结构完全一致。
内容的提问来源于stack exchange,提问作者user7898461
相关产品推荐
相关产品推荐

