Skip to content

ivn-cote/eco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ololo

library is consumed by spa_modern.

Let's try to setup all es6 features including modules.

npm run setup

spa_modern has a bundle configuration via Webpack with Babel transformation

  loader: 'babel-loader',
  include: [
    path.resolve(BASE_PATH, 'src'),
    // This module is published as ES2015 and must be transpiled
    path.resolve(BASE_PATH, 'node_modules/library'),
    path.resolve(BASE_PATH, '../library') // for local npm linked package

In order to have polyfills, it includes also

+  entry: ['babel-polyfill', './src/index.js'],
-  entry: ['./src/index.js'],

And additional setup for Babel

  ["env", {
+    "useBuiltIns": true,

The problem though is that there are too many polyfills.

Once we need polyfill for library code, we already have it on SPA level.

Let's consider the second possible way of library using — as a prepared script. Rollup with proper plugins can assemble bundled version of the library with all polyfills for chossen browsers in the babel-env-plugin config. You can change this list of browsers and get an updated build file.

babel-env-plugin will have ability of choosing polyfills in use later along with Babel7. see discussion on GitHub Experimental settings are in babel7 branch.

Uglify doesn't remove unused polyfills.

Next actions possible:

  • create framework-agnostic library with static code analysis, which append polyfills based on used features
  • wait until Babel7 family is production ready; could happen before Christmas
  • make env-plugin better for Babel6

About

research in the modern FE tools jungle

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published