@lwc/babel-plugin-component
TypeScript icon, indicating that this package has built-in type declarations

6.5.3 • Public • Published

@lwc/babel-plugin-component

Summary

This babel plugin does the following transform:

  • Global decorator transform:
    • Transform @api decorator to publicProperties and publicMethods static properties.
    • Transform @wire decorator to wire static property.
    • Transform @track decorator to track static property.
  • LWC component class sugar syntax:
    • Check for misspelled lifecycle hooks.
    • Import and inject render from a collocated template if a component class doesn't already implement a render method.
  • Optimization:
    • If the compiler inject the default template a component, it will also wire the template style to the component.

Installation

npm install babel @lwc/babel-plugin-component

Usage

const babel = require('@babel/core');
const lwcPlugin = require('@lwc/babel-plugin-component');

const source = `
import { LightningElement } from 'lwc';
export default class extends LightningElement {}`;

const { code } = babel.transformSync(source, {
    plugins: [
        [
            lwcPlugin,
            {
                /* options */
            },
        ],
    ],
});

Options

  • name (type: string, optional) - name of the component, e.g. foo in x/foo.
  • namespace (type: string, optional) - namepace of the component, e.g. x in x/foo.
  • isExplicitImport (type: boolean, optional) - true if this is an explicit import.
  • dynamicImports (type: object, optional) - see below:
    • loader (type: string, optional) - loader to use at runtime.
    • strictSpecifier (type: boolean, optional) - true if a strict specifier should be used.
  • instrumentation (type: InstrumentationObject, optional) - instrumentation object to gather metrics and non-error logs for internal use. See the @lwc/errors package for details on the interface.
  • apiVersion (type: number, optional) - API version to associate with the compiled component.

/@lwc/babel-plugin-component/

    Package Sidebar

    Install

    npm i @lwc/babel-plugin-component

    Homepage

    lwc.dev

    Weekly Downloads

    60,353

    Version

    6.5.3

    License

    MIT

    Unpacked Size

    202 kB

    Total Files

    27

    Last publish

    Collaborators

    • divmain
    • lwc-admin
    • caridy
    • tbliss
    • pmdartus
    • ekashida
    • kevinv11n
    • jye-sf
    • rui.qiu
    • ravi.jayaramappa
    • jodarove
    • abdulsattar
    • nolanlawson
    • jmsjtu