复制`npm pack`行为

时间:2018-05-15 17:44:02

标签: npm tar npm-pack

我正在尝试复制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让你这样做?

1 个答案:

答案 0 :(得分:2)

我做了一些练习,就我的测试而言,npm将接受一个包含root中所有内容的tarball,或者在名为'package'的子目录中的所有内容。

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

tar --exclude='node_modules' -c . > archive.tar

然后使用

将其安装在其他位置
  npm install /path/to/archive.tar

你不能安装在同一个项目中,NPM会抱怨循环deps,所以将它安装在另一个项目中。