1

我试图复制的行为,npm pack因为它有一个限制,它不写入标准输出,它只能写入本地文件(见这个问题:https ://github.com/npm/npm/issues/12039 )

现在,我可以将当​​前目录 tar 并写入标准输出,如下所示:

tar --exclude='./node_modules/' -cv . | gzip > archive.tar.gz

但是,当您提取npm packtarball 时,您的包的所有内容都应该在一个名为'package'.

所以我的问题是 - 我怎样才能压缩当前目录,但将当前目录放在一个'package'在存档之前调用的目录中?

是否有一些 tar -flag 可以让你这样做?

4

1 回答 1

1

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

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

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

然后将其安装在其他地方

  npm install /path/to/archive.tar

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

于 2018-05-15T22:55:52.270 回答