dependencies

Auto generate dependencies in package.json

npm install dependencies
1 downloads in the last day
12 downloads in the last week
57 downloads in the last month

自动依赖分析器

项目的目标是创建一个小程序,自动帮用户分析出一个项目中所require的模块,以帮助用户编写出精确的package.json文件的dependencies和devDependencies属性。

实现思路

通过扫描目录中的js文件,正则表达式匹配require调用,提取出项目中require到的所有模块。并且排除掉Node的原生模块、文件模块,提取出依赖的第三方模块。并自动从NPM服务器上查看最新的版本以提供一个推荐的依赖列表。

求谁来帮忙实现

哥太忙了。求对Node感兴趣的人来帮忙实现下。可以玩玩分析文本文件。项目完成后,奖励两本图灵社区的书

Usage

Example:

var deps = require('./lib/dependencies');
deps.analyze('./test/', {
  cache: true,
  latest: true,
  black_lists: ['black/']
}, function(err, version) {
  if (err) {
    console.log(err);
  } else {
    console.log('Packages version info: ');
    console.log(JSON.stringify(version, null, 4));
  }
});

Outputs:

Fetch from cache: /home/boris/.npm/thisisatest/.cache.json
Fetch from cache failed, package: thisisatest, err: cache not found!
Fetch from server: https://registry.npmjs.org/thisisatest
Fetch from cache: /home/boris/.npm/underscore/.cache.json
Fetch from cache: /home/boris/.npm/async/.cache.json
Fetch from cache: /home/boris/.npm/request/.cache.json
Fetch from cache: /home/boris/.npm/node-walker/.cache.json
Fetch from cache: /home/boris/.npm/ejs/.cache.json
Fetch from cache: /home/boris/.npm/jade/.cache.json
Fetch from cache: /home/boris/.npm/hbs/.cache.json
Fetch from cache: /home/boris/.npm/connect/.cache.json
Packages version info: 
{
    "thisisatest": "*",
    "underscore": "1.4.2",
    "async": "0.1.22",
    "request": "2.11.4",
    "node-walker": "0.1.0",
    "ejs": "0.8.3",
    "jade": "0.27.6",
    "hbs": "1.0.5",
    "connect": "2.6.0"
}

Options:

cache: default is true, try to read npm cache first.

latest: defalt is false, try to read the latest version.

black_lists: default is ['node_modules/'], files or dirs to be ignored.

npm loves you