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

6.5.3 • Public • Published

LWC Compiler

Summary

@lwc/compiler is an open source project that enables developers to take full control of processing a single Lightning Web Components module for runtime consumption.

Installation

npm install @lwc/compiler

APIs

transformSync

Transform the content of individual file.

import { transformSync } from '@lwc/compiler';

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

const filename = 'app.js';

const options = {
    namespace: 'c',
    name: 'app',
};

const { code } = transformSync(source, filename, options);

Parameters:

  • source (string, required) - the source to be transformed. Can be the content of a JavaScript, HTML, or CSS file.
  • filename (string, required) - the source filename with extension.
  • options (object, required) - the transformation options. The name and the namespace of the component is a minimum required for transformation.
    • name (type: string, required) - name of the component, e.g. foo in x/foo.
    • namespace (type: string, required) - namespace of the component, e.g. x in x/foo.
    • stylesheetConfig (type: object, default: {}) - Deprecated. Ignored by compiler.
    • experimentalDynamicComponent (type: DynamicImportConfig, default: null) - The configuration to pass to @lwc/compiler.
    • experimentalDynamicDirective (type: boolean, default: false) - The configuration to pass to @lwc/template-compiler to enable deprecated dynamic components.
    • enableDynamicComponents (type: boolean, default: false) - The configuration to pass to @lwc/template-compiler to enable dynamic components.
    • outputConfig (type: object, optional) - see below:
      • sourcemap (type: boolean | 'inline', optional) - if true, a sourcemap is generated for the transformed file. If 'inline', an inline sourcemap is generated and appended to the transformed file.
      • minify (type: boolean, optional, deprecated) - this option has no effect.
    • experimentalComplexExpressions (type: boolean, optional) - set to true to enable use of (a subset of) JavaScript expressions in place of template bindings. Passed to @lwc/template-compiler.
    • isExplicitImport (type: boolean, optional) - true if this is an explicit import, passed to @lwc/babel-plugin-component.
    • preserveHtmlComments (type: boolean, default: false) - The configuration to pass to the @lwc/template-compiler.
    • scopedStyles (type: boolean, optional) - True if the CSS file being compiled is a scoped stylesheet. Passed to @lwc/style-compiler.
    • enableStaticContentOptimization (type: boolean, optional) - True if the static content optimization should be enabled. Passed to @lwc/template-compiler.
    • customRendererConfig (type: object, optional) - custom renderer config to pass to @lwc/template-compiler. See that package's README for details.
    • enableLightningWebSecurityTransforms (type: boolean, default: false) - The configuration to enable Lighting Web Security specific transformations.
    • enableLwcSpread (boolean, optional, true by default) - Deprecated. Ignored by compiler. lwc:spread is always enabled.
    • disableSyntheticShadowSupport (type: boolean, default: false) - Set to true if synthetic shadow DOM support is not needed, which can result in smaller output.
    • 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 module.

Return

  • code (string) - the compiled source code.
  • map (object) - the generated source map.
  • warnings (array, optional) - the array of diagnostic warnings, if any.
  • cssScopeTokens (array, optional) - String tokens used for style scoping in synthetic shadow DOM and *.scoped.css (as either attributes or classes), if any.

transform (deprecated)

Deprecated asynchronous equivalent of transformSync.

version

import { version } from '@lwc/compiler';

console.log(version);

Return

  • version (string) - the current version of the compiler ex: 0.25.1.

Versions

Current Tags

Version History

Package Sidebar

Install

npm i @lwc/compiler

Homepage

lwc.dev

Weekly Downloads

72,131

Version

6.5.3

License

MIT

Unpacked Size

83.1 kB

Total Files

13

Last publish

Collaborators

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