A class for loading, verifying, and creating plugins. Used by DocPad for years.
Create your project:
mkdir my-project
cd my-project
Create your plugin:
-
mkdir myplugin
-
cd myplugin
-
npm init
-
index.js
to:module.exports = function (BasePlugin) { return class MyPlugin extends BasePlugin { constructor(...args) { super(...args) console.log('hello from my plugin') } } }
-
cd ..
Create your plugin loader:
-
mkdir myapp
-
cd myapp
-
npm init
-
index.js
to:import PluginLoader from '@bevry/pluginloader' class BasePlugin { constructor() { console.log('hello from base plugin') } } const pluginLoader = new PluginLoader({ BasePlugin, pluginPath: require('path').resolve(__dirname, '..', 'myplugin'), })
-
cd ..
Run the project:
node myapp/index.js
- pluginclerk a project for fetching compatible plugins from the npm registry
- docpad-baseplugin the BasePlugin class that DocPad uses
- docpad-plugintester testing helpers for DocPad plugins
- Install:
npm install --save @bevry/pluginloader
- Import:
import * as pkg from ('@bevry/pluginloader')
- Require:
const pkg = require('@bevry/pluginloader')
import * as pkg from 'https://unpkg.com/@bevry/pluginloader@^5.3.0/edition-deno/index.ts'
This package is published with the following editions:
@bevry/pluginloader
aliases@bevry/pluginloader/index.cjs
which uses the Editions Autoloader to automatically select the correct edition for the consumer's environment@bevry/pluginloader/source/index.ts
is TypeScript source code with Import for modules@bevry/pluginloader/edition-es2022/index.js
is TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Require for modules@bevry/pluginloader/edition-es2016/index.js
is TypeScript compiled against ES2016 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules@bevry/pluginloader/edition-types/index.d.ts
is TypeScript compiled Types with Import for modules
Discover the release history by heading on over to the HISTORY.md
file.
Discover how to contribute via the CONTRIBUTING.md
file.
- Benjamin Lupton — Accelerating collaborative wisdom.
- Benjamin Lupton — Accelerating collaborative wisdom.
- Andrew Nesbitt — Software engineer and researcher
- Balsa — We're Balsa, and we're building tools for builders.
- Codecov — Empower developers with tools to improve code quality and testing.
- Poonacha Medappa
- Rob Morris
- Sentry — Real-time crash reporting for your web apps, mobile apps, and games.
- Syntax — Syntax Podcast
- Andrew Nesbitt
- Armen Mkrtchian
- Balsa
- Chad
- Codecov
- dr.dimitru
- Elliott Ditman
- entroniq
- GitHub
- Hunter Beast
- Jean-Luc Geering
- Michael Duane Mooring
- Michael Harry Scepaniak
- Mohammed Shah
- Mr. Henry
- Nermal
- Pleo
- Poonacha Medappa
- Rob Morris
- Robert de Forest
- Sentry
- ServieJS
- Skunk Team
- Syntax
- WriterJohnBuck
Unless stated otherwise all works are:
- Copyright © Benjamin Lupton
and licensed under: