Livescript plugin enabling es modules in generated code
npm install livescript-transform-esmTransform for livescript adding support for modules.
Repository on github
First install livescript and transfrom-esm
npm i -D https://github.com/gkz/LiveScript livescript-transform-esm
to transpile from src to tmp
node_modules/.bin/lsc -r livescript-transform-esm/register -c -o tmp src
to run script use CommonJS module format option e.g. running test/index.ls
node -r livescript-transform-esm/register/cjs -c -o tmp src
This plugin comes equiped with some extra features which won't be seen in js-land any time soon.
Tired of manual polluting scope with hundreds of identifiers, let compiler do it for you.
(for now only relative module are resolved)
``livescript`
import ...
'./symbols'
`livescript`
import
'./symbols' : ...`
both generatejs
import { init, create } from './symbols';
`
`livescript`
import 'modules/**'
`js`
import foo from './modules/foo';
import Math from './modules/Math';
import Vector from './modules/Vector';
`livescript`inside of modules there are: foo.ls, Match.ls, Vector.ls
export { import './modules/**' }
`js`
import import$ from './modules/foo';
import import1$ from './modules/Math';
import import2$ from './modules/Vector';
export { import$ as foo }
export { import1$ as Math }
export { import2$ as Vector }
`livescript`
export default config =
plugins: [
import \livescript-transform-object-create
import \livescript-transform-esm
import \livescript-transform-implicit-async
import \livescript-transform-object-create/lib/plugin
import \livescript-transform-esm/lib/plugin
import \livescript-transform-implicit-async/lib/plugin
]
`js`
import import$ from 'livescript-transform-object-create';
import import1$ from 'livescript-transform-esm';
import import2$ from 'livescript-transform-implicit-async';
import import3$ from 'livescript-transform-object-create/lib/plugin';
import import4$ from 'livescript-transform-esm/lib/plugin';
import import5$ from 'livescript-transform-implicit-async/lib/plugin';
var config;
export { config as default }
config = {
plugins: [import$, import1$, import2$, import3$, import4$, import5$]
};
Answer: async it
`livescript
foo = async import \./modules/foo
vector-path = \./modules/Vector
Vector = async import vector-path
``js
var foo, vectorPath, Vector;
foo = import('./modules/foo');
vectorPath = './modules/Vector';
Vector = import(vectorPath);
`import all
`livescript
import all
\react
\./symbols
``js
import * as symbols from './symbols';
import * as react from 'react';
``If you are using Atom editor you may be interested in my packages which provide realtime code preview supporting this plugin.
* livescript-ide-preview - show transpiled code
* atom-livescript-provider - provides compilation service

If you are using Webpack you can try my loader whith support for this and other plugins.