babel-preset-frontful
is packaged provider of Babel preset and package build and deployment utilities. It is default transpiler setup and package build instrument for Frontful infrastructure
Installation
# Using yarn yarn add babel-preset-frontful# or npm npm install -s babel-preset-frontful
Integration
Package build and deployment
babel-preset-frontful
is part of Package development assist and apart from Babel preset it provides basic build and deployment instrumentation for packages.
When installed babel-preset-frontful
script is added to package projects node_modules/.bin
that can be used in scripts
section of package.json
// package.json "scripts": "build": "babel-preset-frontful build" "deploy": "babel-preset-frontful deploy"
Build
# Using yarn yarn build# or npm npm run build
babel-preset-frontful build
script has no opinions about your packages structure. It takes all files and folders excluding /node_modules
, copies them to /build
folder and transpiles each supported file e.g .js
and .jsx
using its preset.
Deploy
# Using npm npm run deploy
babel-preset-frontful deploy
script builds package using babel-preset-frontful build
and deploys /build
folder content to Npm registry.
deploy
script does not handle authentication to npm, you should be signed in and have permission to deploy. Use npm login
command or configure .npmrc
file for that.
deploy
script gives few extra features
- Minor package version will be automatically incremented
- Package won't be deployed if files have not changed. This is ensured by generating and comparing hash of all files to previously hash stored in
.hash
- Package is locked by automatically setting property
private
totrue|false
, this is to prevent accidental deployment of package using defaultnpm publish
oryarn publish
scripts.
Instructions for editor and IDE
babel-preset-frontful
returns preconfigured Babel setup and can be used as any other preset in .babelrc
. Keep in mind that Frontful infrastructure does not use .babelrc
, but it can be useful to instruct for example Atom's source-preview plugin.
// .babelrc "presets": "frontful"
Configuration
babel-preset-frontful
can be configured by setting properties from schema to frontful.babel
in package.json
. Configuration can be done in several ways as provided by frontful-config
, bellow are two examples
- Add
frontful.babel.server.options
object topackage.json
. Keep in mind that these options are not Babel options but ones accepted by babel-preset-frontful/provider/server
// package.json "frontful": "babel": "server": "options": ...
- Create ES5
config.babel.js
file, and reference this file infrontful.babel
inpackage.json
// config.eslint.jsconst provider = moduleexports = server: config:
// package.json "frontful": "babel": "./config.babel.js"