我到底应该输入什么.npmignore
?
测试?这样的东西.travis.yml
,.jshintrc
?运行模块时不需要什么(自述文件除外)?
我对此没有任何指导。
我到底应该输入什么.npmignore
?
测试?这样的东西.travis.yml
,.jshintrc
?运行模块时不需要什么(自述文件除外)?
我对此没有任何指导。
Answers:
正如您可能发现的那样,NPM并没有具体说明应该放入的内容,而是有一个默认忽略文件列表。许多人甚至不使用它,因为如果不存在,默认情况下.gitignore
会忽略其中的所有内容。此外,默认情况下,无论设置如何,许多文件都已被忽略,并且某些文件总是被忽略,如上面的链接所述。npm
.npmignore
关于应该永远存在的东西并没有多少官方信息,因为它基本上是的子集.gitignore
,但是从我使用节点5年的经验中得出的结论,这就是我的想法。
注意:生产是指有人在任何时候使用您的模块,而不是在模块本身上进行开发。
.coffee
文件包含在包中,但可以在git存储库中继续对其进行跟踪。node-gyp
可能会在构建期间生成目标文件,而这些文件永远都不会进入软件包。.gitignore
无论如何这应该总是存在的。如果您.npmignore
已经在使用文件,则必须将这些内容放在此处,因为.gitignore
从npm的角度来看,它已被覆盖。.travis.yml
使用,测试或查看代码不需要执行诸如此类的操作。CNAME
文件或占位符乱抛垃圾。index.html
gh-pages
npm install
,我应该只依赖npm,而不能依赖其他外部资源。基本上,如果您希望将某些东西排除在npm软件包之外而不将其排除在npm存储库之外,则应该使用它。它不是一长串的项目,但是npm宁愿内置功能而不是让人们将无关的对象卡在包装中。
我同意lante简短简短的回答和SamT的大回答:
我对这些答案的贡献:
.npmignore是实现软件包文件选择的黑名单方法。但是,以更实用的方式,您可以使用 package.json中的files字段将需要包含在软件包中的文件列入白名单:
{
"files": [
"lib/",
"index.js"
]
}
我认为这是更简单的,面向未来的方法,并且具有更好的语义;)
npm test
在所有node_modules上进行递归可以给您一个提示,即某些操作在特定环境中是否有所不同。
.npmignore
。files: ["lib", "!lib/**/*.test.js"]
。:)
为了澄清起见,只要有人这样做npm install your-library
,npm都会下载回购中包括的所有源文件,但您包含在中的文件除外.npmignore
。
知道安装库的人员只需要运行您的库即可,不需要任何其他操作。
例如,当某人安装一个库时,可能是他/她不在乎您.travis.yml
或您的.jshintrc
文件,甚至不在乎 某些图像,Grunt文件,文档等。
.npmignore
可以让您的npm软件包包含的文件更少,并且下载速度更快
.npmignore
它不直接影响下载的内容,而是影响npm发布和上载时打包内容。这间接会创建较小的文件以供下载。
不要包括您的测试。通常,测试的大小约为实际代码库的5倍。只要您在Github等上进行测试,就足够了。
但是,您绝对应该做的是以发布的格式测试NPM软件包。创建一些驻留在实际代码库中但不属于测试套件的冒烟测试。
您可以在将其打包后对它进行测试,以了解有关测试您的程序包的信息:https: //github.com/ORESoftware/r2g
npm install yourlibrary
,例如.travis.yml
和.jshintrc