Clone this repo:


  1. 4724586 Merge pull request #33 from mbullington/release by Michael Bullington · 1 year, 2 months ago master
  2. ddd4f12 Release 2.0.2 by Natalie Weizenbaum · 1 year, 2 months ago
  3. ec11f5a Bump terser from 4.2.1 to 4.8.1 (#31) by dependabot[bot] · 1 year, 2 months ago
  4. ac443f5 Merge pull request #29 from mnito/enable_direct_browser_import by Natalie Weizenbaum · 1 year, 2 months ago
  5. a3c9735 Refine Node.js and global check to also support service workers by mnito · 2 years ago


A simple package for a better dart2js preamble for running on node.js. This package exists for ease of use if incorporating into your build system.

This preamble is suggested for use over d8.js, and provides many improvements and bug fixes, as it uses node.js's timer functions and event loop over the custom one implemented in d8.js.

The JavaScript file can be found at lib/preamble.js.

You can also get the preamble via Dart, like in the following example.

import "package:node_preamble/preamble.dart" as preamble;

main() {

Credit goes to the Dart team for creating Dart, dart2js, and the original preamble which this is derived from.


The only file that we directly modify is preamble.js. After that, to reflect your changes in both preamble.dart and preamble.min.js, run npm install && npm run minify


node_preamble tries to support the following platforms. Before a pub release, the following environments should be manually tested with a sample dart2js output:

  • node
  • Webpack (easy way is with create-react-app)
  • Electron Fiddle (w/ and w/o node integration)