in daily work, you need to develop third-party packages on which sdk, is sent to the company"s private npm repository as a basis. In principle, the package should have at least one reference scheme in umd format and one reference scheme for module. But I encountered some misgivings during the release.
so I"d like to ask you whether the npm package released by
needs to be precompiled using babel. Where do you need to compile if necessary.
several options that come to mind for the time being
1. Compile to es5/es3
use babel to compile the syntax to an environment that es5 recognizes, and to compile transform-runtime into the package.
advantages:
- does not report an error when it is introduced, so you can be a shopkeeper.
disadvantages:
- if every sdk is like this, then there are n transform-runtime, giants.
- because the returned function is also in the form of promise, the referrer still has to add polyfill to use it on an earlier version of the browser.
2. Compile to es6
use babel to compile the syntax of stage0-3 into the syntax confirmed by es6.
advantages:
- is much smaller without adding transform-runtime, for example, async/await only needs to be translated into generator.
- it makes sense. "you see, the same is true of the axios library, which requires you to compile a wave of your own.
disadvantages:
- it"s just that compiling the syntax of stage 0-3 into es6, is a bit like taking off your pants and farting.
- most developers do not want to change the original babel plug-in configuration of the project, and third-party packages are not compiled by default in the babel configuration.
3. Do not compile at all
pros and cons are similar to compiling to es6.
< hr >temporary solution:
- how umd is introduced: min.js in dist is compiled to es5/es3.
- es is introduced: the main of the npm package points directly to the source code and is compiled by the user.