npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

code-recheck

v1.1.2

Published

一键查重,自动检查项目中的重复代码

Downloads

5

Readme

一键查重,还记得毕业论文查重的感觉吗?是时候对你的项目进行检测了

NPM

在开发的过程中我们往往会存在大量的复制粘贴代码的行为,这一点在项目的开发初期尤其显著;而在项目逐步稳定,功能需求逐步完善之后我们就需要考虑对代码库的优化与重构,尽量编写清晰可维护的代码。好的代码往往是在合理范围内尽可能地避免重复代码,遵循单一职责与 Single Source of Truth 等原则。

这个工具会对代码库进行自动检索,根据其反馈的重复或者近似的代码片进行合理的优化。当然,我们并不是单纯地追求公共代码地完全剥离化,过度的抽象反而会降低代码的可读性与可理解性。结合实际项目应用场景合理抽离复用,才能走上升职加薪的康庄大道。

代码重复报告输出示例

使用方法

1. 支持传入多个远程git项目列表,批量生成代码重复报告输出到指定地址。

const check = require('code-recheck');
 
const list = [
              {
                "name": "测试项目1", //生成的重复报告将以此命名
                "gitPath": "https://github.com/zhangkun-Jser/autils",
              },
              {
                "name": "测试项目2", 
                "gitPath": "https://github.com/zhangkun-Jser/auto-form-create",
              }
             ]

const path = '/Users/zhangkun/Desktop' //如果不填生成的代码重复报告将输出到code-recheck模块下的report文件夹

const ext = ['.es6'] //默认检查的文件格式列表是['.js', '.jsx', '.ts', '.tsx'],可传入ext参数替代

const ignore = ['spec'] //默认忽略的文件夹列表是['test', 'mock', 'node_modules', 'gen-nodejs'],可传入ignore参数替代

//如果是公司内部的gitLab需要传入账户密码才有权限拉取代码
const user = 'gituser'; 
const password = 'gitpassword';

const params = {list, path, ext, ignore, user ,password};

check(params)

参数

| Prop | Type | Description | default | required | | -------- | ------ | ------------ | ------- | ------- | | list | Array<{name: string, gitPath: string}> | git项目仓库列表 | - | 必填 | | path | Array | 代码重复报告输出路径 | code-recheck/report | 非必填 | | ext | Array | 检查的文件格式 | ['.js', '.jsx', '.ts', '.tsx'] | 非必填 | | ignore | string | 忽略的文件夹 | ['test', 'mock', 'node_modules', 'gen-nodejs'] | 非必填 | | user | string | git用户名 | - | 非必填 | | password | string | git密码 | - | 非必填 |

2. 支持命令行调用检查本地文件

首先全局安装本模块

npm i code-recheck -g

然后命令行中定位到项目目录,敲入check命令执行查重,检查完成后会在当前目录下生成代码重复报告。

$ check

检测已完成,请查看当前执行目录下的【代码重复报告.md】

Changelogs

1.1.0

  • 支持本地文件检查,在当前目录下输出代码重复报告