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

egg-load

v1.1.2

Published

🚀 自动挂载第三方模块至 Egg.js 框架上

Downloads

1

Readme

egg-load

npm version MIT npm

egg-load-image

自动挂载第三方模块至 Egg.js 框架上

目录

介绍

在项目开发中,需要用到一些第三方模块(module),一般情况下使用 require 就可以将模块引入使用了。但是如果多个文件中用到同一个模块,在每个文件中都需要 require 引入,显得有些麻烦,同时也不利于项目工程化管理。

本插件就是为了解决这个问题而诞生的,能够将指定的第三方模块挂载到 Egg.js 框架的 app 属性上,以便调用。

本插件完美适配 Egg.js 框架,只需要按照框架要求启用插件,根据文档要求进行配置使用即可。

安装

按照通用的方式使用 npm 下载安装到你的项目下即可,无需全局安装。

安装命令:

npm i egg-load

使用

在使用前,请确保你已经阅读 Egg.js 框架关于插件文档

下面说明如何配置以及使用插件。

启用插件

config/plugin.js 文件中声明启用插件:

exports.load = {
  /** 是否启用插件,true 为启用,false 为禁用 */
  enable: true,

  /** 指定插件使用的包,请填写 'egg-load' */
  package: 'egg-load',
};

配置方式

config/config.${env}.js文件配置插件:

exports.load = {
  /** 需要挂载的模块列表 */
  module: [
    /** 列表项支持对象(object)和字符串(string)两种形式 */
    {
      /** 需要挂载的 npm 包的包名,例如 axios,必填 */
      package: 'pkg1-name',

      /** 挂载的属性名,例如填 abc,该模块可以通过 app.abc 进行访问,默认为包名,选填 */
      name: 'abc',

      /** 是否禁用,默认为否,选填 */
      disabled: false,
    },

  /** 使用字符串形式只需要输入包名即可,其他属性按照默认属性自动设置 */
    'pkg2-name',
  ],

  /** 是否挂载到 app 上,默认开启 */
  app: true,

  /** 是否挂载到 agent 上,默认关闭 */
  agent: false,
}

各配置项的含义是:

| 属性 | 类型 | 默认值 | 是否必填 | 说明 | | :----: | :--------------: | :----: | :------: | :----------------------------------------------------------: | | module | object | string | 无 | 否 | 需要挂载的模块列表,列表项支持对象(object)和字符串(string)两种形式 | | app | string | true | 否 | 是否挂载到 app 上,默认开启 | | agent | boolean | false | 否 | 是否挂载到 agent 上,默认关闭 |

使用说明

按照上述方式配置后,第三方模块将自动挂载到了 app 上,可以通过指定的属性名进行访问。

另外一点需要说明的是,配置引入的第三方模块,需要自行下载安装,本插件并不会帮助你自动下载。

示例

我们模拟以下这个使用场景,来演示如何配置和使用本插件:

发现 axios 和 only 两个模块的使用率非常高,于是准备将这两个模块挂载到框架上。

config/plugin.js 文件中声明启用插件:

exports.load = {
  enable: true,
  package: 'egg-load',
};

config/config.${env}.js文件配置插件(示例是一个典型的配置方式):

exports.load = {
  module: [
    {
      package: 'axios',
      name: 'req',
    },
    'only',
  ],
}

通过上述示例方式配置后,可以通过 app.res 访问 axios 模块,以及通过 app.only 访问 only 模块。

相关

以下是作者开发的 Egg.js 框架的插件系列,已用于作者的生产项目中,推荐使用。

  • egg-apigw-tracer - ⚡ 适配 API 网关的 HTTP 请求示踪器,用于 Egg.js 框架
  • egg-aliyun-tablestore - 🚚 阿里云表格存储(Tablestore)插件,用于 Egg.js 框架
  • egg-load - 🚀 自动挂载第三方模块至 Egg.js 框架上

作者

我是 inlym ,一个产品经理和全栈开发者。

如果你有任何问题或者建议,欢迎联系我,以下是我的联系方式:

参与

非常欢迎你能够参与这个项目的开发和维护。

你可以通过以下几种方式参与到项目中:

  1. 提建议和需求。对于几句话就能说清楚的建议和需求,你可以直接 提一个 New Issue
  2. Fork 项目,修改代码,然后提交 Pull requests 。(提交前请检查务必通过 ESLint 检查)

许可证

本插件使用 MIT 许可证。