package.json generation / npm unused packages

时间:2012-04-11 15:33:24

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

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

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

第二个问题是:是否有任何产生package.json文件的神奇方法? (对于依赖项和版本)

第三个问题是:我在开发项目时已经测试了很多npm packages,现在我已经遇到了很多可能未使用的软件包。有什么办法可以说出哪一个没用吗? (我看到npm list installed虽然有用但是很有用)

5 个答案:

答案 0 :(得分:34)

  1. 我正在使用摩卡。

  2. npm init

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


  4. 基本上,您的工作流程非常落后。以下是它的工作方式:

    1. 使用npm init开始一个新项目。它没有依赖关系。
    2. 哦,我想开始使用一个包,说express?将其添加到依赖项下的package.json,然后运行npm install
    3. 哦,我想开始使用开发包,比如说mocha?将其添加到package.json下的devDependencies,然后运行npm install
    4. 您似乎有一些现有的代码与手动安装的软件包(通过npm install <packageName>),这是一个烂摊子。我建议重新开始并遵循上述工作流程。

答案 1 :(得分:20)

回答第三个问题

npm prune

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


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

答案 2 :(得分:6)

  1. 我也在使用摩卡。它具有代码覆盖率,BDD,TDD,在浏览器中运行。这是非常完整的,并且我认为是最杰出的javascript / node.js程序员之一,名为TJ。

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

  3. 我也可能会删除所有依赖项,然后使用步骤(2)重新安装所需的依赖项。但是目前的HD还不再是光盘空间。

  4. P.S:我想我也同意Domenic

答案 3 :(得分:3)

  1. 我正在使用誓言。这很不错,但并不完美。我发现节点中的单元测试经常具有挑战性,因为对dbs&amp ;;的异步回调。这样,并且大部分都在测试顶级功能。

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

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

答案 4 :(得分:2)

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