cal*_*lum 87 node.js npm npmignore
我究竟应该投入.npmignore什么?
测试?好像.travis.yml,.jshintrc?运行模块时不需要的任何东西(自述文件除外)?
我找不到任何关于此的指导.
Sam*_*amT 82
正如您可能发现的那样,NPM并没有真正具体说明应该在哪里,而是它们有一个默认忽略文件列表.许多人甚至不使用它,因为默认情况下,如果不存在,您的所有内容都将.gitignore被忽略.此外,默认情况下,无论设置如何,都会忽略许多文件,并且一些文件总是被排除在外,因为如上面的链接所示.npm.npmignore
关于什么总是应该存在的官方并不多,因为它基本上是一个子集.gitignore,但是从我使用节点收集到的5-ish年,这就是我想出的.
注意:通过生产我的意思是任何时候你的模块被某人使用而不是在模块本身上开发.
.coffee在包中包含文件,但要在git存储库中跟踪它们.node-gyp可能会在构建期间生成的对象文件永远不会进入包中..gitignore无论如何,这应该总是进入.如果您正在使用.npmignore文件,则必须将这些内容放在此处,因为它会.gitignore从npm的角度覆盖..travis.yml使用,测试或查看代码不需要的东西.CNAME文件或占位符来丢弃您的版本.index.htmlgh-pagesnpm install,我应该只依赖于npm,而不是其他外部资源.基本上,如果您希望保留npm包之外的某些内容但不在npm存储库之外,则应该使用它.这不是一个很长的项目列表,但是npm宁愿构建功能而不是让人们在他们的包中遇到不相关的对象.
Yve*_* M. 56
我对这些答案的贡献:
.npmignore是实现包文件选择的黑名单方式.但是以更实际的方式,您可以使用 package.json中的files字段将您需要包含的文件列入白名单:
{
"files": [
"lib/",
"index.js"
]
}
Run Code Online (Sandbox Code Playgroud)
我认为这更简单,未来证明并且具有更好的语义;)
lan*_*nte 15
只是为了澄清,只要有人这样做npm install your-library,npm将下载repo包含的所有源文件,除了你在你的文件中包含的文件.npmignore.
要知道安装库的人只需要运行您的库,其他任何东西都是不必要的.
例如,当有人安装库时,可能他/她不关心您 .travis.yml或您的.jshintrc文件,甚至一些图像,Grunt文件,文档等.
.npmignore 可以让你的npm包文件更少,下载速度更快
不要包括您的测试。通常,测试的大小是实际代码库大小的 5 倍。只要你的测试在 Github 等上就足够了。
但您绝对应该做的是以其发布的格式测试您的 NPM 包。创建一些驻留在实际代码库中的冒烟测试,但不属于测试套件的一部分。
您可以在此处阅读有关打包后测试软件包的信息: https: //github.com/ORESoftware/r2g
如何测试“npmpublish”结果,而不实际发布到 NPM?
| 归档时间: |
|
| 查看次数: |
13933 次 |
| 最近记录: |