正如您可能发现的那样,NPM并没有具体说明应该放入的内容,而是有一个默认忽略文件列表。许多人甚至不使用它,因为如果不存在,默认情况下
.gitignore会忽略其中的所有内容。此外,默认情况下,无论设置如何,许多文件都将被忽略,并且某些文件总是会被忽略,如上面的链接所述。
npm``.npmignore
关于应该永远存在的东西并没有多少官方信息,因为它基本上是的子集
.gitignore,但是从我使用节点5年的经验中得出的结论,这就是我的想法。
注意: 生产 是指有人在任何时候使用您的模块,而不是在模块本身上进行开发。
发行前的交叉编译源
- 优点 :如果您使用的是可交叉编译为Javascript的语言,则可以在发行前进行预编译,并且不将
.coffee
文件包含在包中,但可以在git存储库中对其进行跟踪。
构建文件剩余
- 优点 :使用类似工具的人
node-gyp
可能会在构建期间生成目标文件,而这些文件永远都不会进入软件包。 - 缺点 :
.gitignore
无论如何这应该总是存在的。如果您.npmignore
已经在使用文件,则必须将这些内容放在此处,因为.gitignore
从npm的角度来看,它会覆盖该文件。
测验
- 优点 :生产代码中的行李少。
- 缺点 :您不能在实时环境中运行测试,这是系统特定的故障,例如,由于正在运行的节点版本过旧而导致测试失败。
持续集成设置/元文件
- 优点 :同样,行李少。
.travis.yml
使用,测试或查看代码不需要执行诸如此类的操作。
非自述文档和代码示例
- 优点 :行李少。在思想流派中有些人存在,如果您无法在自述文件中至少表达最少的可行功能,则您的模块太大。
- 缺点 :人们无法在自己的文件系统上看到详尽的文档和代码示例。他们将不得不访问存储库(这也需要Internet连接)。
Github页对象
- 优点 :如果您使用模块兼作存储库,那么您当然不需要用
CNAME
文件或占位符乱抛垃圾。index.html``gh-pages
bower.json和朋友
- 优点 :如果您决定在发布之前内置依赖项,则不需要最终用户安装bower,然后再安装更多东西。我个人将这些东西放在包装中。当我执行时
npm install
,我应该只依赖npm,而不能依赖其他外部资源。
基本上,如果您希望将某些东西排除在npm软件包之外而不将其排除在npm存储库之外,则应该使用它。它不是一长串物品,但是npm宁愿内置功能而不是让人们将无关的对象卡在包装中。



