Skip to content
This repository has been archived by the owner on Aug 23, 2022. It is now read-only.

CureApp/babel-plugin-transform-strip-jsnext

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

babel-plugin-transform-strip-jsnext

npm version npm downloads

A babel plugin to strip '/jsnext' path from importing module names. Used to switch entry point in production.

Before:

import A from 'packageA/jsnext'
import B from 'packageB/jsnext.js'
import C from 'packageC/jsnext-foo-bar'

After:

import A from 'packageA'
import B from 'packageB/jsnext.js'
import C from 'packageC/jsnext-foo-bar'

Concept

It's similar to rollup.js's jsnext:main. It's designed for switching entry points of your microservices of babel / flow-typed npm modules.

└─┬ your-service1
  ├── your-module1 (ES module)
    ├── your-module2 (ES module)

You may want to use untranspiled codes of your modules1 and your modules2 in developing your service1 for type. However, simply importing untranspiled codes will not go well in generating transpiled files.

babel src -d dist

It cannot transform node_modules/* by default and fails.

Then, let's add jsnext entry.

The skeleton of your module 1/2 will be like the following.

├── index.js (transpiled entry point)
├── jsnext.js (untranspiled entry point)
 ...

You can import the untranspiled code with /jsnext

import mod1 from 'your-module1/jsnext'

In the transpilation phase, the /jsnext will be stripped by this transform.

Installation

$ npm install babel-plugin-transform-strip-jsnext

Usage

Via .babelrc (Recommended)

.babelrc

{
  "plugins": ["transform-strip-jsnext"]
}

Via CLI

$ babel --plugins transform-strip-jsnext script.js

Via Node API

require('babel-core').transform('code', {
    plugins: ['transform-strip-jsnext']
});

License

MIT

About

A babel plugin to strip '/jsnext' path from importing module names.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published