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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@webmiyang/elpis

v1.0.0

Published

账号:zhexuanquanzhan18_000031 密码:4fvnqk

Readme

账号:zhexuanquanzhan18_000031 密码:4fvnqk

问题总结

1、vscode 插件占用c盘空间,通过应用的--》属性 --》快捷方式-》添加--extensions-dir "D:\vscode-plugin" 改变虚拟存储空间 2、git 提交规范,原视频用的是ghooks(版本太老目前已停止维护),改为通过husky 配置提交前校验 2-1、git提交规范 : feat: 新增功能 fix: 修补 bug docs: 文档 style: 格式(不影响代码运行的变动) refactor: 重构 (既不新增功能,也不是修改bug的代码改动) test: 增加测试 chore: 构建工具或辅助工具的变动

3、获取环境变量时 process.env._ENV 可能会出现不等的字符串 例如:在命令行中获取 process.env._ENV 为 dev 时,返回的是 'dev' 而不是 dev 解决方法: 在命令行中使用 --env = dev 来指定环境变量 不要有空格不要加单引号'' 如果有空格获取时需要使用 trim() 方法去掉空格

4、进一步完善全局中间件 进行路由页面模板渲染 先进入全局中间件=》静态文件服务=》模板渲染 用到了koa-nunjucks-2 中间件 例如:/page1 会先进入全局中间件 获取路由参数 =》静态文件服务 =》找到对应模板 进行渲染=》返回页面
例如:/static/normalize.css 会先进入静态文件服务 =》返回对应文件 用到了koa-static 中间件 4-1、 log4js 日志中间件 用于记录路由请求日志 本地开发环境 会记录到 console 中 其他环境 会记录到 .log 文件中保存到logs目录下

5、补充全局中间件 错误处理中间件 用于处理路由中间件中抛出的错误 参数校验中间件 用于校验路由参数是否符合路由定义 签名验证中间件 用于校验路由参数中的签名是否正确

6、工程化思想 6-1、整体(业务页面)开始 输入(业务文件vue,react,js,ts,css,less,png等)--》 处理(通过模板引擎解析编译、分包、压缩)--》 输出(输出符合项目要求的静态文件模板文件或者html)--》 部署(通过koa服务或者其他服务进行访问)

6-1-1、输入(业务文件vue,react,js,ts,css,less,png等)--》 清晰的项目结构 例如: common | -- utils.js store | -- index.js entry1 | -- entry1.js | -- entry1.vue entry2 | -- entry2.js | -- entry2.vue 6-1-2、处理(通过模板引擎解析编译、分包、压缩)--》 用到了打包工具 webpack vite 或 rollup 等,他们的功能就是将项目中的业务文件打包成静态文件模板文件或者html 流程就是用node运行一个js入口文件 这个文件引入打包工具并按工具配置打包规则,然后根据规则进行打包 6-1-2-1、入口文件制定基础的打包规则 基础的配置分为: 1、entry 入口文件 用于指定打包的入口文件 webpack和vite都支持多入口打包,每个入口文件对应一个输出文件 vite默认是index.html需要用rollup原生来支持多入口打包 2、output 输出文件 用于指定打包后的文件输出的目录 3、loader 解析文件 用于指定不同的文件类型用不同的loader解析 4、plugins 插件 用于指定打包过程中需要使用的插件 5、resolve 解析文件 用于哪些文件需要使用loader解析 还可以配置地址映射别名alias vite默认配置了别名,不需要在resolve中配置别名

6-1-2-2、模板引擎解析编译 不同的文件类型用不同的loader解析 例如:
  webpack 配置文件 webpack.config.js 中配置了模板引擎的解析编译 还要配置plugins 中的 vue-loader 插件
  例如:
  module: {
    rules: [
      {
        test: /\.vue$/,
        use: 'vue-loader'
      }
    ]
  },
  vite基座是rollup 与webpack不同的是vite不需要在plugins中配置vue-loader插件,因为它默认配置了模板引擎的解析编译插件,的插件需要在vite.config.js中配置
  plugins: [
    vue()
  ]
6-1-2-2、分包
  1、webpack 配置文件 webpack.config.js 中配置了分包的规则 例如:
  optimization: {
    minimize: true,
    minimizer: [
      new TerserPlugin({
        parallel: true,
        cache: true,
        sourceMap: true,
        exclude: /node_modules/
      })
    ]
  }
  2、vite 配置文件 vite.config.js 中配置了分包的规则 例如:
  build: {
    rollupOptions: {
        output: {
            manualChunks: ['vue']
        }
    }
  }
6-1-2-3、多线程打包
  1、webpack 配置文件 webpack.config.js 中配置了多线程打包的规则 例如:
  optimization: {
    minimize: true,
    minimizer: [
      new TerserPlugin({
        parallel: true,
        cache: true,
        sourceMap: true,
        exclude: /node_modules/
      })
    ]
  }
  2、vite 配置文件 vite.config.js 中配置了多线程打包的规则 例如:
  build: {
    rollupOptions: {
        output: {
            manualChunks: ['vue']
        }
    }
  }
6-1-2-4、压缩
  1、webpack 配置文件 webpack.config.js 中配置了压缩的规则 例如:
  optimization: {
    minimize: true,
    minimizer: [
      new TerserPlugin({
        parallel: true,
        cache: true,
        sourceMap: true,
        exclude: /node_modules/
      })
    ]
  }
  2、vite 配置文件 vite.config.js 中配置了压缩的规则 例如:
  build: {
    minify: 'terser',
    minifyOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true,
      },
    },
  }

6-1-3、输出(输出符合项目要求的静态文件模板文件或者html)--》 output 输出: { path: path.resolve(__dirname, 'dist'), filename: 'name].[contenthash].js', clean: true, }

7、工程化-本地开发搭建 之前的打包输出是静态文件模板文件或者html,它是一个固定的文件,但是本地开发修改比较频繁,不能每次修改都要打包一次在重新启动,这就需要一个热更新功能,基本原理就是有一个能实时访问静态文件的服务,这个服务能监听业务文件的修改也能通知产物文件。 这个本地服务器的作用 1、监控业务文件(原始的代码文件)是否有变化 2、与(内存里的)产物保持一致,通知重新加载 3、本地提供内容来保存解析引擎编译之后的产物 4、提供一个本地的http服务,浏览器可以通过这个服务来访问本地的文件(这段代码会注入到产物中使其引用的文件变为一个http服务也就是本地内存里的静态文件)

8、封装npm包 用link先链接到本地的npm包目录 然后在项目中引入这个npm包 然后在项目中使用这个npm包 问题1、有路径问题 项目文件解析加载时 会报错 因为项目文件的路径是相对于项目根目录的 而npm包的路径是相对于项目根目录的 所以需要在项目中配置一个别名 比如: resolve: { alias: { '@': path.resolve(__dirname, 'src'), }, }

1、model配置问题 怎样实现权限分配? 都是写进文件的 系统也都是通过文件解析的数据 这种思想最终的落地方式还是通过库表来配合实现吗?

2、感觉也是一大块内容 库表设计应该也需要同样的抽象思维,大家也缺少这样的思路, 比如这个配置怎么分表还是用一个表一个打json解析?还是由页面自由配置?

3、低代码的实现是不是就是这样思想的最终体现? 只不过把model.js文件用交互的拖拉拽实现了?

4、能不能把这种思想做成一个开箱即用的低代码平台框架? 有没有现成的框架? 因为沉淀模型的基础也是需要进行开发的,比如低代码的组件库、低代码的配置文件解析器以及基础的库表等。