Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

all: lodash - switch from CommonJS imports to ES2015 imports #150

Closed
dsebastien opened this issue Mar 5, 2018 · 2 comments
Closed

all: lodash - switch from CommonJS imports to ES2015 imports #150

dsebastien opened this issue Mar 5, 2018 · 2 comments
Assignees
Milestone

Comments

@dsebastien
Copy link
Contributor

Currently, we should import Lodash like this to include only those functions we need in our bundles:

const _cloneDeep: Function = require("lodash/cloneDeep");

This means that Lodash cannot be "scope hoisted" because of the CommonJS import. Moreover, it cannot be tree-shaked for the same reason.
We should instead use ES6 imports:

import * as _ from "lodash"; // or import _ from "lodash";
// and then use the lodash functions like this:
_.cloneDeep(...);

To make this work, babel-plugin-lodash and lodash-webpack-plugin could be used together.
In fact, a major version of Lodash is planned for 2018 in order to support refined entry points to allow "cherry picking" and work together with babel-plugin-lodash

@dsebastien dsebastien added the must label Mar 5, 2018
@dsebastien dsebastien added this to the must milestone Mar 5, 2018
@dsebastien dsebastien added type: enhancement comp: stark-all To apply for all Stark modules labels Mar 5, 2018
@dsebastien
Copy link
Contributor Author

Comment from @christophercr :
Another loadet to look at:
https://github.com/efidiles/lodash-ts-imports-loader

Interesting article describing different possible solutions:
https://medium.com/@martin_hotell/tree-shake-lodash-with-webpack-jest-and-typescript-2734fa13b5cd

@carlo-nomes
Copy link
Collaborator

Also investigating the usage of @types/lodash.

carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 22, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 22, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 22, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 22, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 22, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 22, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 25, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 26, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 26, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 27, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 27, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 27, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 27, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 27, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Feb 28, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 4, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 4, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 21, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 21, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 21, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 21, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 27, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 27, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 27, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 27, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 27, 2019
  - added used modules to rollup globals (TODO: NationalBankBelgium#1129)
  - blacklisted `lodash-es` (use submodules instead)
  - added `karma-typescript-es6-transform` for transforming es6 dependencies
    - added workaround for monounity/karma-typescript#320 in `base.spec.ts` (stark-core, stark-ui, showcase, starter)
    - aliased all used lodash modules in karma.conf.js (TODO NationalBankBelgium#1145)
  - minor refactors

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 27, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
carlo-nomes added a commit to carlo-nomes/stark that referenced this issue Mar 27, 2019
This commit will refactor all used instances of `const (.*) = require("lodash/(.*)")` to `import (.*) from "lodash/(.*)"`

ISSUES CLOSED: NationalBankBelgium#150
@christophercr christophercr modified the milestones: must, 10.0.0-beta.7 Apr 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants