一尘不染

我应该忽略测试吗?

node.js

我到底应该输入什么.npmignore

测试?这样的东西.travis.yml.jshintrc?运行模块时不需要什么(自述文件除外)?

我对此没有任何指导。


阅读 200

收藏
2020-07-07

共1个答案

一尘不染

正如您可能发现的那样,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宁愿内置功能而不是让人们将无关的对象卡在包装中。

2020-07-07