Articles of npmignore

npm链接不关心package.json或.npmignore中的“文件”

我的目标是在发布节点模块之前指定要包含哪些文件,并能够在本地testing安装。 使用package.json中的“文件”工作,如果我发布我的包并安装它,那么我只得到“文件”中指定的内容。 当我使用npm链接时,情况并非如此。 不pipe是package.json还是.npmignore中的“files”,npm链接似乎总是给我所有的文件。 我怎样才能像这样在本地testing我的模块安装? 例如: cd ~/projects/node-redis # go into the package directory npm link # creates global link cd ~/projects/node-bloggy # go into some other package directory. npm link redis # link-install the package 如果〜/ projects / node-redis在其package.json中有“files:[lib]”,那么在运行“npm link redis”之后,只会希望在〜/ projects / node-bloggy中显示lib,但这不是案子。 除此之外:我喜欢node和npm,但是如果你看看你的节点模块中有什么,那么在自述文件中有很多像PNG这样的无关文件。 因为这个模块是非常可笑的。

.npmignore – 忽略所有* .ts文件,而不是* .d.ts

我正在寻找一种很好的方式来在发布到NPM时忽略项目中的所有.ts文件,我可以通过将以下内容添加到我的.npmignore文件中来实现: *.ts 但是等等..实际上我想保留所有的.d.ts文件在我的项目中,当我发布… 什么可以添加到我的.npmignore文件,将保留所有的.d.ts文件,但忽略所有.ts文件? 我假设我必须使用某种forms的正则expression式来忽略以.ts结尾的所有文件,这些文件不以.d.ts结尾 所以这个JS正则expression式可能看起来像: *.\.[^d]\.ts 上述正则expression式应该是什么意思是匹配以.ts结尾的.ts结尾的任何内容 但当然,我们坚持我认为是不那么强大的正则expression式使用的操作系统等。

package-lock.json是否也应该发布?

npm 5引入了package-lock.json ,其中的文档就在这里 。 它声明,该文件旨在包含在版本控制中,所以克隆你的软件包并安装它的任何人都将拥有相同的依赖版本。 换句话说,你不应该把它添加到你的.gitignore文件中。 它没有声明的是否文件是打算包含在已发布的软件包中。 这个问题可以改写为: package-lock.json应该包含在.npmignore中吗?

如何将.npmignore目录中的单个文件列入白名单?

我试图让npm只下载包的npm install目录下的一个文件。 该目录如下所示: +- dist/ +- 1.0.0/ +- 1.0.1/ +- …lots of other dirs… +- file.js 我想npm忽略一切,但file.js所以我尝试在我的.npmignore包括以下.npmignore : dist/ !dist/file.js 然而,当我安装软件包时,npm仍然会下载所有目录。 我以为这应该是像.gitignore工作,但显然我在这里失踪的东西。

我是否应该试试我的testing?

我应该把什么东西放在.npmignore ? testing? 东西像.travis.yml , .jshintrc ? 运行模块时什么都不需要(自述除外)? 我找不到任何指导。