JSPM

  • Created
  • Published
  • Downloads 7039
  • Score
    100M100P100Q10484F
  • License MPL-2.0

Neutrino middleware for compiling JavaScript using Babel configuration

Package Exports

  • neutrino-middleware-compile-loader

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (neutrino-middleware-compile-loader) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Neutrino Compile Loader Middleware

NPM version NPM downloads Join Slack

neutrino-middleware-compile-loader is Neutrino middleware for compiling source code with Babel.

Requirements

  • Node.js v6.10+
  • Yarn or npm client
  • Neutrino v7

Installation

neutrino-middleware-compile-loader can be installed via the Yarn or npm clients.

Yarn

yarn add neutrino-middleware-compile-loader

npm

npm install --save neutrino-middleware-compile-loader

Usage

neutrino-middleware-compile-loader can be consumed from the Neutrino API, middleware, or presets. Require this package and plug it into Neutrino:

// Using function middleware format

const compile = require('neutrino-middleware-compile-loader');

neutrino.use(compile, {
  include: [],
  exclude: [],
  babel: {}
});
// Using object or array middleware format

module.exports = {
  use: [
    ['neutrino-middleware-compile-loader', {
      include: [],
      exclude: [],
      babel: {}
    }]
  ]
};
  • include should be an array of paths to include in the compilation. Maps to Webpack's Rule.include
  • exclude should be an array of paths to exclude from the compilation. Maps to Webpack's Rule.exclude
  • babel is a Babel configuration object, consumed by babel-loader. Use this to set properties such as presets, plugins, and env.

Merging Babel Configuration

This package also exposes a function for merging Babel configurations. This comes from the babel-merge package.

const { merge } = require('neutrino-middleware-compile-loader');

const together = merge(
  {
    presets: [
      ['babel-preset-env', {
        targets: {
          browsers: ['latest 1 Chrome']
        }
      }]
    ]
  },
  {
    presets: [
      ['babel-preset-env', {
        targets: {
          browsers: ['latest 1 Firefox']
        }
      }]
    ]
  }
);

console.log(together);

// Logs:
{
  presets: [
    ['babel-preset-env', {
      targets: {
        browsers: [
          'latest 1 Chrome',
          'latest 1 Firefox'
        ]
      }
    }]
  ]
}

Customization

neutrino-middleware-compile-loader creates some conventions to make overriding the configuration easier once you are ready to make changes.

Rules

The following is a list of rules and their identifiers which can be overridden:

Name Description Environments and Commands
compile Compiles JS and JSX files from the src directory using Babel. Contains a single loader named babel. all

Contributing

This middleware is part of the neutrino-dev repository, a monorepo containing all resources for developing Neutrino and its core presets and middleware. Follow the contributing guide for details.