为什么mocha需要在devDependencies中?

rwa*_*ace 1 javascript mocha.js node.js npm

从表面上看,像教程所说的那样,mocha在devDependencies中是合乎逻辑的,它毕竟是一个dev依赖.

但实际上你安装它-g所以你可以运行mocha作为命令.据我所知,无论是否在package.json中提到,它都没有任何区别.

那么是否需要明确列出它?

Kos*_*Kos 5

如果您正在开发一个开源项目,那么您的目标之一就是允许其他开发人员能够快速开始贡献.

其中一个有用的事情是新开发人员可以快速构建和运行项目,以及运行测试.为此,您可以提供一种简单的方法来安装开发人员应该拥有的所有工具,以便为您的项目做出贡献.

这包括:

  • 构建工具
  • 测试工具
  • 代码质量工具(linter)

另一方面,您的项目的用户可能不需要任何这些,这是分裂dependencies和的一个很好的理由devDependencies.


最重要的是,编辑您的内容package.json以提供有用的功能非常有用,scripts以便您可以运行npm test.通常指定以下内容:

{
    ...
    "scripts": {
        ...
        "test": "mocha -opts mocha.opts ...tests..."
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将从你npm test的特定运行.mochanode_modules