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

netfile

v1.0.0

Published

Node Action in iMooc

Downloads

4

Readme

NodeJS入门到企业Web开发中的应用

由于项目使用了ESLint和Supervisor,请先执行下面的npm本地工具。慕课网实战视频教程:https://coding.imooc.com/class/package/146.html

netfile资静态资源服务器CLI工具

1. 管理文件
2. 自动打开管理页面
3. 兼容macos和windows
4. 多种命令参数可选
5. 缓存方案

CLI工具封装

1. npm i -g netfile # 把当前文件夹当作静态资源服务区根目录 
2. netfile -p 8080 # 设置端口号
3. netfile -h localhost # 设置主机ip
4. netfile -d /usr/ # 设置跟目录为/usr
5. netfile -c # 是否使用缓存方案 

npm本地工具

1. npm i -g eslint,supervisor
2. npm i -g babel-eslint -D

深入学习内容

1. Stream(fs/http)
2. Express/Koa/egg
3. child_process/Cluster集群
4. through2
5. SSR/同构
6. NodeJS源码

CommonJS: NodeJS自带的模块管理规范

1. 每个文件都是一个模块,有自己的作用域;
2. 在模块内部,module 变量代表模块本身;
3. module.exports 属性代表模块对外提供的接口

require规则

1. / 表示根目录绝对路径,./ 表示当前文件所在目录;
2. 支持 js,json,node 拓展名,不写则依次尝试;
3. 不写路径则认为该模块是 nodeJS 内建模块或向上各级 node_module 下第三方模块

require特性

1. module 被加载的时候执行,加载后缓存;
2. 如果某个模块被循环依赖,就只输出已执行的部分,未执行的部分不会输出; 
3. node_modules 并没有把子依赖放在依赖包的原因是为了提高性能

module.exports 和 exports 的区别

exports是 module.exports 的快捷方式, 如 const exports = module.exports;
注意exports的指向问题,不能修改。因为exports指向的永远是moudle.exports

fs文件系统增删改查

1. fsUpdate.readFile/fsUpdate.readFileSync
2. 
3. 

global全局对象(无window对象)

1. CommonJS,Buffer,Process,Console,Timer,SetImmediate;
2. global.xxx相当于直接把xxx暴露给所有模块;
3. 模块中直接写const是局部变量,写global是全局变量
4. global.setImmediate(() => {xxx})事件队列执行顺序(3)

global.process进程模块

1. process可以获取主机环境的各种信息;
2. process.nextTick(() => {xxx})事件队列执行顺序(1)
3. setTimeout(() => {xxx})事件队列执行顺序(2)

利用node Inspect 命令和 Chrome 进行调试学习

1. 
2. 
3. 

内建模块之path

1. __dirname和__filename总是返回文件的绝对路径
2. process.cwd()总是返回node命令所在的文件夹
3. 在require方法中总是相对当前文件所在文件夹
4. 在其他地方和process.cwd()一样,相对node启动文件夹

全局变量之global.buffer

1. Buffer用于处理二进制数据流
2. 实例类似整数数组,大小固定(0-255十六进制)
3. C++代码在V8引擎堆外分配物理内存

内建模块之event事件

1. 
2. 
3. 

回调地狱之ES6的promise

回调地狱之ES7的async await

1. 引入 util.promisify 处理异步回调
2. 异步方法使用 const xxx = promisify(zzz.xxx) 转为同步方法
3. 异步方法调用前使用 await 关键字

.gitignore

1. 匹配模式前加 / 代表项目根目录
2. 匹配模式最后加 / 代表是目录
3. 匹配模式前加 ! 代表取反
4. * 代表任意字符,? 代表匹配一个字符, ** 代表匹配多级目录

pre-commit模块:不符合ESLint就不让push

1. 每次git commit会验证ESlint规则并自动修复一部分内容
2. 自动修复不了的内容会报错,需要手动修改后再次commit

supervise和pm2管理监视node程序

1. npm i -g supervisor pm2
2. 修改服务端代码不需要重启node程序了

模板引擎HandleBars

1. 安装:npm i handlebars

缓存Header方案

1. Expires / Cache-Control
2. If-Modified / Last-Modified
3. If-None-Match / ETag

node命令参数

1. yargs和commander的对比
2. 
3. 

发布npm包的流程

1. 
2. 
3.