Coder Social home page Coder Social logo

Comments (3)

smalluban avatar smalluban commented on June 21, 2024

Hey! The Webpack feature that you want to use should be set in your webpack.config.js file, not taken from the library package.json. Look at the docs, where you can find code example:

module.exports = {
  //...
  resolve: {
    mainFields: ['browser', 'module', 'main']
  }
};

While libraries should contain one of the following fields: "main", "module" or "browser". The first two are in hybrids package.json. The last one is not relevant, as the library is pure for the browsers only.

Moreover, what you want to do is something, that should be avoided. Built version of the library is only here for those who have to use it directly by <script> tag. It also doesn't include HMR support and has less verbose errors - it is only for production usage.

If you use Webpack, you should leave default behavior of the Webpack configuration (without set mainFields) and import library like this:

import { define } from 'hybrids';

Even with this code, you don't have to transpile code to es5 as it is traspiled already. Only src path has ES2015 syntax.

To sum up, this is the mapping from package.json:

  • module: esm/index.js - ES5 with import / export syntax
  • main: lib/index.js - es5 with commonjs
  • dist/hybrids.js - no entry in package.json - only for CDN like https://unpkg.com/hybrids/dist/hybrids.js

Feel free to re-open, if you have other questions related to this subject.

from hybrids.

striker93 avatar striker93 commented on June 21, 2024

Thanks for the clarification .I originally raised this question so as to have less bundle size for prod but webpack can minify the es6 module i guess. I have more clarity now, but one doubt.

It also doesn't include HMR support and has less verbose errors - it is only for production usage.

I am using webpack not for transpiling but for bundling (with two configuration dev and prod). If i bundle the code as is with import will i be getting HMR in prod code also? if yes then i how can i turn it off ?

from hybrids.

smalluban avatar smalluban commented on June 21, 2024

You don't have to worry. The library uses process.env.NODE_ENV value, which is provided by the Webpack and other bundlers. If you use production mode in Webpack it removes all not necessary code for production use.

from hybrids.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.