babel-preset-const-enum
Babel preset for TypeScript
const
enums
Install
Using npm:
npm install --save-dev babel-preset-const-enum
or using yarn:
yarn add babel-preset-const-enum --dev
Description
This preset runs
babel-plugin-const-enum
only on files with extensions .ts
or .tsx
. This prevents SyntaxError
s from
happening when mistakenly running babel-plugin-const-enum
on non-TypeScript
files such as flow, which uses a .js
extension.
A babel preset is required because plugins don't have access to the file extension of the file the plugin may run on.
Usage
You are most likely using
@babel/preset-typescript
as along with this preset. Make sure that babel-preset-const-enum
comes after
@babel/preset-typescript
in the preset array so that
babel-preset-const-enum
runs first.
This preset needs to run first to transform the const enum
s into code that
@babel/preset-typescript
allows.
.babelrc
allExtensions
boolean
, defaults to false
.
Indicates that every file extension should be parsed.
transform: removeConst
(default)
Removes the const
keyword to use regular enum
.
Can be used in a slower dev build to allow const
, while prod still uses tsc
.
See babel#6476.
// Before: // After:
.babelrc
Or Explicitly:
.babelrc
transform: constObject
Transforms into a const
object literal.
Can be further compressed using Uglify/Terser to inline enum
access.
See babel#8741.
// Before: // After:;
.babelrc