lodash-ts-imports-loader

Transpiles ES6 lodash imports into typescript imports to help with tree-shaking

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
lodash-ts-imports-loader
4101.2.06 years ago7 years agoMinified + gzip package size for lodash-ts-imports-loader in KB

Readme

Jump to

Overview

jump to TOC
A webpack preloader which transpiles ES6 lodash imports into typescript imports to help with tree-shaking.
Basically transpiles from ES6 syntax:
import { debounce } from 'lodash';

into typescript syntax:
import debounce = require('lodash/debounce');

before the source code is being taken through the typescript compiler.
This way webpack 2 will be able to only include the code that's being actually used.

Installation

jump to TOC
  1. Install the package:
$ npm install lodash-ts-imports-loader --save-dev

Usage

jump to TOC
In your webpack.config.js add the lodash-ts-imports-loader preloader:
// ...
module: {
    rules: [
        {
            test: /\.ts$/,
            loader: 'lodash-ts-imports-loader',
            exclude: /node_modules/,
            enforce: "pre"
        },
        // ...
    ],
    // ...
}
// ...

Now somewhere in your main.ts typescript file add an ES6 import for lodash:
import { debounce } from 'lodash';
// make sure you have this line as well otherwise you're not using the import member
// and the lodash code will not be included in the bundle
console.log(debounce); 

run webpack bundling and check your bundle size.
Update the code to:
import { debounce, zip } from 'lodash';
// make sure you have this lines as well otherwise you're not using the import members
// and the lodash code will not be included in the bundle
console.log(debounce); 
console.log(zip); 

run webpack bundling and check your bundle size.
This time the bundle size should be larger.

Links

jump to TOC
NPM:
https://www.npmjs.com/package/lodash-ts-imports-loader
GITHUB:
https://github.com/efidiles/lodash-ts-imports-loader.git

Author

jump to TOC
Eduard Fidiles

License

jump to TOC
Released under the MIT license.
Copyright © 2016, Eduard Fidiles