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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@qqi/dev

v0.1.1

Published

原 @qqi/dev-log 的 dev 部分

Downloads

14

Readme

@qqi/dev

version issues 提交

安装

npm install --save-dev @qqi/dev

使用

在单元测试的时候使用 jest ,在功能测试时使用 node:testnode:assert。但是测试的时候,总是有打印的消息被 node:test 的结果覆盖。所以,写了一个简介的 dev ,用于功能测试。

类似于 node:test,使用如下:

import { dev } from '@qqi/dev-log';

const log = console.log;

dev.beforeEach(() => {
  console.log('你们执行前需要先执行我');
});

dev.afterEach(() => {
  console.log('你们执行完后会执行我');
});

// 简单使用
dev('测试 1', () => {
  log(1);
});

// 我其实就是想能够跳过测试而不是每一次 ((skip)=>{ if(skip) return; ....})(false)
dev.skip('跳过的测试', () => {
  log('我并不会被打印出来');
});

// 子测试,每一个测试是独立的,类似于 jest,单独的测试模块出现 Error 将阻止剩余逻辑执行
dev('包含子项的测试', it => {
  it.before(() => {
    console.log('我是大哥,我先执行,且仅执行一次');
  });
  it.before(() => {
    console.log('我是二哥,我执行次于大哥,且仅执行一次');
  });

  it.after(() => {
    console.log('我是小弟,你们执行完再执行我就行,仅执行一次');
  });

  it.beforeEach(() => {
    console.log('我是三哥,我执行次于二哥,每次子项执行我都执行一次');
  });

  it.beforeEach(() => {
    console.log('我是二弟,我执行早于小弟,每次子项执行我都执行一次');
  });

  it('子项 1️⃣', () => {
    log('我要出错');
    throw new Error('我粗错了');
    log('完啦,我打印不出来了');
  });

  it('子项 2️⃣', () => {
    log('没想到吧,我还活着');
  });
});

// 可以异步执行
await dev('测试异步的代码', async it => {
  it('测试异代码 2️⃣ ', async () => {
    log('异步代码 2️⃣ 外部');
    return new Promise(resolve => {
      log('异步代码 2️⃣ 内部');
      setTimeout(() => {
        log('异步代码 2️⃣');
        resolve('异步代码 2️⃣');
      }, 500);
    });
  });

  await it<string>('测试异代码 1️⃣ ', async () => {
    log('异步代码 1️⃣ 外部');
    return new Promise(resolve => {
      log('异步代码 1️⃣ 内部');
      setTimeout(() => {
        log('异步代码 1️⃣');

        resolve('异步代码 1️⃣');
      }, 1000);
    });
  });
});

在使用异步的测试时,总是期待能够使用 await ,否者可能将收到 TypeError

文档地址

参看 https://earthnut.dev/qqi/dev