我正在尝试复制npm pack
的行为,因为它有一个限制,它不会写入stdout,它只能写入本地文件(请参阅此问题:https://github.com/npm/npm/issues/12039)
现在,我可以tar当前目录并写入stdout,如下所示:
tar --exclude='./node_modules/' -cv . | gzip > archive.tar.gz
但是,当您提取npm pack
tarball时,您的包的所有内容都应位于名为'package'
的目录中。
所以我的问题是 - 我如何tarball当前目录,但在归档之前将当前目录放在名为'package'
的目录中?
是否有一些tar -flag让你这样做?
答案 0 :(得分:2)
我做了一些练习,就我的测试而言,npm将接受一个包含root中所有内容的tarball,或者在名为'package'的子目录中的所有内容。
要测试上述理论,您可以使用以下命令对NPM项目目录进行tar:
tar --exclude='node_modules' -c . > archive.tar
然后使用
将其安装在其他位置 npm install /path/to/archive.tar
你不能安装在同一个项目中,NPM会抱怨循环deps,所以将它安装在另一个项目中。