0.1.2 • Published 3 years ago

@tinalabs/tinacms-plugin-utils v0.1.2

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

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-utils

Packaging Plugins

The Plugin Utils comes with a basic CLI-driven packager for your plugin:

CommandDescriptionDefault
npx tinacms-plugin-utils buildOutputs bundles based on the main, browser, and typings field of the plugin's package.jsonnone
npx tinacms-plugin-utils [dev\|watch]Starts a development process that watches for file changes and re-runs builds each timeN/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 dist or lib folder. 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 typings field to package.json that maps to the declaration file of your main. For example, if main is dist/index.js, then typings must be dist/index.d.ts.
  • Set compilerOptions.rootDir to src in your tsconfig.json
  • Add src/**/* to include in tsconfig.json

Contributing

Prerequisites

You must have NodeJS LTS installed.

Installation

Install the project dependencies by running:

npm install

Development

Start a development server by running:

npm start

Production Builds

Build a production build by running:

npm run build