cat .babelrc
{
  "presets": [
    "es2015",
  ],
  "plugins": [
    "babel-plugin-add-module-exports"
  ],
  "ignore": [
    "dist/*.js"
  ]
}

cat webpack.config.js
'use strict';
var path = require('path');
var config = {
  target: 'web',
  entry: 'lib/es6-promise.js',
  resolve: {
    modules: ['/usr/lib/nodejs', '.'],
  },
  resolveLoader: {
    modules: ['/usr/lib/nodejs'],
  },
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'es6-promise.js',
    libraryTarget: 'umd'
  },
  module: { rules: [ { use: [ 'babel-loader' ] } ] }
}
module.exports = config;

build with:
webpack --config webpack.config.js
uglifyjs dist/es6-promise.js > dist/es6-promise.min.js

the build succeeds and the resulting binary seems to work; I tested in the 
browser with this:
<html>
  <head></head>
  <body>
  <script>window.Promise = null;</script>
  <script src="es6-promise.js"></script>
  <script>
var promise = new Promise(function(resolve, reject) {
  var person = prompt("Please enter your name", "Harry Potter");
  if (person != null) {
    resolve("Stuff worked!");
  }
  else {
    reject("It broke");
  }
});
promise.then(function(result) {
  console.log(result);
}, function(err) {
  console.log(err);
});
  </script>
  </body>
</html>

this seems to do what upstream's es6-promise-auto does: "Automatically 
provides/replaces Promise if missing or broken"

Paolo

Reply via email to