Building a Better Web
June 11–12, 2018: Training
June 12–14, 2018: Tutorials & Conference
San Jose, CA

The Future of JavaScript Modules

C J Silverio (npm Inc)
9:00am–9:40am Thursday, June 14, 2018
Future JS and Functional
Location: 210 B/F Level: Intermediate
Secondary topics:  Developer Experience Track: Tools, Platforms, and Techniques, High-level, Technical

Who is this presentation for?

web developers

Prerequisite knowledge

Attendees should be familiar with current javascript development workflows, either targeting the backend with node.js or targeting the browser. They should have some experience with npm packages and with javascript bundling and transpilation tools like babel.

What you'll learn

Attendees will learn how ECMAScript modules differ from CommonJS modules, how the javascript language is changing to accommodate a new module system, key ways in which the systems differ from each other, and how to use code written in the old system in the new system.


JavaScript in browsers has a new module system: ES modules. JavaScript in node.js has had a module system for years: CommonJS modules. JavaScript developers have nearly universally adopted node as the platform of choice for their tooling. Web application frameworks all use command-line tools written in node, pulling shared code from the npm registry, to build applications that run on the browser. Open-source code they find on npm is freely used in these applications.

CommonJS modules do not work in the browser, but bundling tools like browserify and webpack have allowed CommonJS modules to be built into browser-ready code. Early implementations of ES modules rely on the CommonJS module system under the hood, as Babel transpiles ESM syntax into CommonJS syntax. The two module systems are incompatible in several interesting ways, but Babel has hidden the differences.

However, with the arrival of browser support for ES modules, developers now expect to be able to write ESM code and have it work everywhere.

In this talk, the CTO of npm will go into detail about what’s new, what you need to know about how to use the new system, and what you need to know to use all the JavaScript that already exists from your new code.

Photo of C J Silverio

C J Silverio

npm Inc

CJ Silverio is the CTO of npm, Inc. Her work allows JavaScript developers all over the world to share code and build modern web applications.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)