@tinalabs/tinacms-plugin-utils v0.1.2
tinacms-plugin-utils
A utility library and packager for TinaCMS plugins
Usage
Installation
You must have NodeJs LTS or greater installed. Then you can add the utils to your plugin project by running:
npm install --dev tinacms-plugin-utilsPackaging Plugins
The Plugin Utils comes with a basic CLI-driven packager for your plugin:
| Command | Description | Default |
|---|---|---|
npx tinacms-plugin-utils build | Outputs bundles based on the main, browser, and typings field of the plugin's package.json | none |
npx tinacms-plugin-utils [dev\|watch] | Starts a development process that watches for file changes and re-runs builds each time | N/A |
We recommend adding them as scripts in the plugin's package.json:
"scripts": {
"lint": "tinacms-plugin-utils lint",
"watch": "tinacms-plugin-utils watch",
"dev": "tinacms-plugin-utils dev",
"build": "tinacms-plugin-utils build"
}Bundles for your plugin can be built by adding one, or many, of the following fields to package.json, and creating a corresponding entry/source file:
| Name | Description | Example |
| main | The default entry point for the plugin package. Builds a commonJS module intended to be used as a Node library. | dist/index.js => src/index.(js|ts) |
| browser | The entry point for browser-ready code. Builds an IIFE (immediately invoked function expression). Intended to be used in the browser. | dist/index.browser.js => src/index.browser.(js|ts) |
| module | The entry point for a modern ES6 module bundle. Intended to be used in NodeJS or modern browsers. | | dist/index.mjs => src/index.(js|ts) |
Note: these fields only support paths located in
distorlibfolder. All other paths will cause problems.
Using Typescript
Typescript requires you to add a tsconfig.json next to the package.json of the project, and will honor all of the settings in tsconfig, except for ignoring: noEmitHelpers, importHelpers, noEmit, emitDeclarationOnly, and noResolve as these must be enabled for the build to work.
Emitting declarations
To emit declaration files for your project, you need to:
- Add a
typingsfield topackage.jsonthat maps to the declaration file of yourmain. For example, ifmainisdist/index.js, thentypingsmust bedist/index.d.ts. - Set
compilerOptions.rootDirtosrcin yourtsconfig.json - Add
src/**/*toincludeintsconfig.json
Contributing
Prerequisites
You must have NodeJS LTS installed.
Installation
Install the project dependencies by running:
npm installDevelopment
Start a development server by running:
npm startProduction Builds
Build a production build by running:
npm run build5 years ago