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

@laomu/npm-proxy

v0.1.6

Published

简单的npm包缓存服务器,不使用数据库,直接用本地文件

Downloads

1

Readme

npm包缓存服务器

简单的npm缓存服务,第一次请求的包会缓存到本地文件,后续再次请求时就直接使用本地服务。 无需数据库,直接使用本地静态资源作为服务器

安装

npm install @laomu/npm-proxy

使用

  1. 首先创建js文件,例如proxy.js
const proxy = require('@laomu/npm-proxy');
proxy({
    registry: 'registry.npm.baidu.com', // 转发到的npm服务地址
    port: 8221,                         // 本地监听端口
    timeout: 30000,                     // 缓存超时时间,定期对数据进行清理,单位秒,默认2天
    localhost: 'proxy.server.host:8221',// 远程加载时请求的服务器地址
    saveTo: __dirname + '/cache'        // 缓存文件保存目录
})
  1. 启动proxy.js
node proxy.js
# 或者
pm2 start proxy.js
  1. 如何使用缓存服务
npm install --registry=http://proxy.server.host:8221

如何工作

请求npm包信息时,转发请求前将包信息中的tgz地址更换为服务器地址,之后请求tgz包内容时会请求服务器地址 在请求转发后,将转发内容存储到服务器,下次请求相同文件时将直接使用本地文件而达到加速效果

问题

  • 因为存在缓存,最近发布的包的地址可能不在缓存内部,会出现下载失败的情况,此时可以通过访问链接http://proxy.server.host:8221/@clear/cache清空缓存(修改host为自己的host)

版本记录

  • v1.0.6
    • 增加主动清理缓存链接:/@clear/cache
  • v1.0.5
    • 清理记录时,不清理根文件夹,避免上传文件失败
  • v1.0.4
    • 增加upload配置项,可上传文件,默认关闭
  • v1.0.3
    • 增加timeout参数,配置缓存过期时间
  • v1.0.2
    • 基本缓存功能