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

@idlebox/json-extends-loader

v1.0.26

Published

load JSON files with "extends" field

Readme

json extends loader

读取链式json配置文件。例如:

{
	"extends": "...",
	// ...
}

用法:

import { loadInheritedJson } from '@idlebox/json-extends-loader';

const config = loadInheritedJson('src/tsconfig.json', { cwd: __dirname });

选项(第二个参数)

全部为可选项。

| 参数 | 类型 | 默认值 | 说明 | | -------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------ | | readJsonFile | (absPath: string) => anyIJsonLoader | 使用comment-json读取并解析文件 | 读取指定文件,你可以通过此函数读取任何内容(如yaml) | | cwd | string | process.cwd() | 如果第一个参数是相对路径,则与cwd拼接,否则无影响 | | extendsField | string | "extends" | 将"extends"更换为其他字段名 | | nodeResolution | boolean | true | 若为false,则不搜索node_modules,只能继承相对路径 | | arrayMerge | <T>(target: T[], source: T[], options?: Options): T[] | 后者简单覆盖前者 | 参考deepmerge文档 |

额外的工具方法

readJsonFile(filePath: string): any

使用comment-json读取并解析json文件。

这是readJsonFile选项的默认值。

createDynamicReader(processor: IProcess): IJsonLoader

interface IProcess {
	(file: string, data: any): void;
}

返回一个函数,可用于readJsonFile选项。你可以在此回调中修改data

const tsconfigReader: IJsonLoader

预定义的loader,可作为readJsonFile选项使用。

为加载tsconfig.json优化

  • 解析许多与路径相关的选项。例如 outDir、rootDir

class NotFoundError

错误对象