【问题标题】:package.json generation / npm unused packagespackage.json 生成 / npm 未使用的包
【发布时间】:2012-04-23 22:47:36
【问题描述】:

我正在我的项目中引入单元测试,为此,我需要为自己创建一个 package.json 文件。

第一个问题是,您使用的是哪个unit testing suite?我很期待mocha,这似乎是Node.js 项目的标准。

第二个问题是:有没有什么神奇的方法可以生成package.json文件? (对于依赖项和版本)

第三个问题 是:我在开发我的项目时测试了很多 npm packages,现在我遇到了很多可能未使用的包。有没有办法判断哪个没用? (我看到了npm list installed 这很有用)

【问题讨论】:

  • npmjs.org/doc/init.html 可能是创建 npm 项目的最简单方法。我建议您阅读 npmjs.org/doc/json.html 并从使用良好且经过测试的软件包(例如 express 或 npm 本身)中获得灵感。
  • 你真的应该问三个不同的问题。
  • 哇!这么多好答案!感谢大家,这非常有帮助!继续前进!

标签: javascript unit-testing node.js continuous-integration npm


【解决方案1】:
  1. 我正在使用摩卡。

  2. npm init

  3. npm ls 将在 package.json 中不包含的内容旁边列出“无关”。但是,听起来你还没有 package.json。


基本上,您的工作流程非常落后。以下是它的工作原理:

  1. 使用npm init 开始一个新项目。它没有依赖关系。
  2. 哦,我想开始使用一个包,比如说express?将其添加到依赖项下的package.json,然后运行npm install
  3. 哦,我想开始使用包进行开发,比如mocha?将其添加到devDependencies 下的package.json,然后运行npm install

您似乎有一些带有手动安装包的现有代码(通过npm install <packageName>),这是一团糟。我建议重新开始并遵循上述工作流程。

【讨论】:

  • 当你说那是落后的时候你是完全正确的。它应该是一个很小的测试项目,但结果比我预期的要大得多,而且不是用于测试的,呵呵。感谢您的回答!
  • 您也可以执行npm install <packageName> --save,它会自动将其添加到您的package.json。有关详细信息,请参见此处:npmjs.org/doc/install.html。我发现它比 Domenic 上面建议的工作流程更容易。
  • 还有--save-dev for devDependencies(上述链接中的文档)
【解决方案2】:

回答第三个问题

npm prune

将删除您的 package.json 中不再提及的所有已安装模块。


你真的应该问 3 个不同的问题。

【讨论】:

    【解决方案3】:
    1. 我也在使用 Mocha。它具有代码覆盖率、BDD、TDD,在浏览器中运行。它非常完整,并且由我认为最出色的 javascript/node.js 程序员之一 TJ 进行了大量维护。

    2. 几乎不可能猜测要使用哪个版本。因为 npm 不知道哪个版本破坏了哪个依赖。您可能可以使用node-detective 之类的方式安装所有依赖项。然后你可以在 javascript 中使用 npm.js 安装它们。也许我想在未来解决这个问题。

    3. 我也可能会删除所有依赖项,接下来使用步骤 (2) 安装所需的依赖项。但是,对于当前的 HD,磁盘空间也不再是一个大问题。

    P.S:我想我也同意 Domenic

    【讨论】:

      【解决方案4】:
      1. 我正在使用誓言。它非常好,但并不完美。我发现节点中的单元测试通常具有挑战性,因为异步回调到 dbs 等,并且主要测试顶级功能。

      2. 这是你的魔法:Managing Node.js Dependencies with Shrinkwrap

      3. 了解您正在使用的软件包的唯一方法是了解。您不能以编程方式生成它。我的建议是积极删除软件包,然后重新测试所有功能 - 如果它坏了,您就会知道您需要重新安装其中一个软件包。

      【讨论】:

        【解决方案5】:

        回答您的第三个问题,您可以使用Sweeper 列出未使用的依赖项,并将它们从您的 package.json 中删除。只需npm install -g sweeper,然后在您的项目目录中调用sweeper 在命令行上。

        【讨论】:

          猜你喜欢
          • 2014-05-05
          • 2018-08-13
          • 2018-01-25
          • 2014-06-26
          • 1970-01-01
          • 2015-10-06
          • 2021-11-18
          • 1970-01-01
          相关资源
          最近更新 更多