正在复制“npm包”行为

正在复制“npm包”行为,npm,tar,npm-pack,Npm,Tar,Npm Pack,我试图复制npmpack的行为,因为它有一个不写入标准输出的限制,它只能写入本地文件(请参阅此问题:) 现在,我可以对当前目录加上tar,然后像这样写入stdout: tar --exclude='./node_modules/' -cv . | gzip > archive.tar.gz 但是,当您提取npmpacktarballs时,您的包的所有内容都应该位于名为'package'的目录中 因此,我的问题是-如何对当前目录进行tarball,但在存档之前将当前目录放入名为'packa

我试图复制
npmpack
的行为,因为它有一个不写入标准输出的限制,它只能写入本地文件(请参阅此问题:)

现在,我可以对当前目录加上tar,然后像这样写入stdout:

tar --exclude='./node_modules/' -cv . | gzip > archive.tar.gz
但是,当您提取
npmpack
tarballs时,您的包的所有内容都应该位于名为
'package'
的目录中

因此,我的问题是-如何对当前目录进行tarball,但在存档之前将当前目录放入名为
'package'
的目录中


有什么tar-flag可以让你这么做吗?

我做了一些准备工作,就我的测试而言,npm将接受一个tarball,它包含根目录中的所有内容,或者包含名为“package”的子目录中的所有内容

要测试上述理论,您可以使用以下命令对NPM项目目录进行tar:

tar --exclude='node_modules' -c . > archive.tar
然后将它安装到其他地方

  npm install /path/to/archive.tar

但是您不能在同一个项目中安装,NPM会抱怨循环DEP,所以请在另一个项目中安装它。

mkdir包和&cp-R源程序包/&&tar--exclude='./node_modules/'-cvf-。|gzip>archive.tar.gz
诸如此类的东西?那会有用的,但我不想写入文件系统,我有只读访问权限,因为我对文件系统有只读访问权限(它在docker容器中),我必须这样做,不是创建一些临时目录。也许我疯了,但是你怎么能在只读环境中创建一个zip呢?用
tar-c*| write_anywhere_but_local_filesystem