创建`npm publish`压缩工件

问题描述 投票:0回答:1

我有一个使用CI服务器构建的包。我可以使用像tar -zcvf filename.tgz .这样的东西压缩整个目录,但我不想在我的.npmignore中包含这些文件。例如,我不想包括/src.gitignorejunit.xml和其他一些目录。

如何创建看起来像包的已发布版本的工件?

我想一个解决方案是使用--exclude

tar --exclude="./src" --exclude=".gitignore" --exclude="junit.xml" -zcvf filename.tgz .

或者使用--include

tar -zcvf filename.tgz --include="./lib" --include=".babelrc.js" --include=".eslint.js" --include="package.json"

但是,我不喜欢这些解决方案中的任何一个,因为每次向项目添加文件/目录时,我都必须手动更新两个地方(.npmignore和此命令)。

npm tar
1个回答
0
投票

最好的解决方案是-X

.npmignore

.git/*
__mocks__/*
.vscode/*
coverage/*
src/*
node_modules/*
junit.xml

请注意,我包括node_modules/.gitnpm publish已经不包含它们,但我们不希望它们存在于我们的存档中。我们现在可以排除我们想要的任何文件/目录。

tar -X .npmignore -cvf filename.tar .

我注意到我们排除的目录不包含目录的内容,但仍然包含目录本身,只是空的。我们怎么不包括目录呢?我试过.git/并没有排除任何文件。

© www.soinside.com 2019 - 2024. All rights reserved.