Upgrade to latest babel
There has been a lot of renaming and restructuring in babel, so we need to modify our code to handle the latest version. We also need to adjust the way we build our babel worker as babel itself no longer runs in older browsers such as Internet Explorer.
This commit is contained in:
parent
b88a92afe8
commit
0dd439a874
19
package.json
19
package.json
|
@ -40,17 +40,18 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/novnc/noVNC",
|
"homepage": "https://github.com/novnc/noVNC",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-core": "*",
|
"@babel/core": "*",
|
||||||
"babel-plugin-add-module-exports": "*",
|
"@babel/plugin-syntax-dynamic-import": "*",
|
||||||
|
"@babel/plugin-transform-modules-amd": "*",
|
||||||
|
"@babel/plugin-transform-modules-commonjs": "*",
|
||||||
|
"@babel/plugin-transform-modules-systemjs": "*",
|
||||||
|
"@babel/plugin-transform-modules-umd": "*",
|
||||||
|
"@babel/preset-env": "*",
|
||||||
|
"@babel/cli": "*",
|
||||||
"babel-plugin-import-redirect": "*",
|
"babel-plugin-import-redirect": "*",
|
||||||
"babel-plugin-syntax-dynamic-import": "*",
|
|
||||||
"babel-plugin-transform-es2015-modules-amd": "*",
|
|
||||||
"babel-plugin-transform-es2015-modules-commonjs": "*",
|
|
||||||
"babel-plugin-transform-es2015-modules-systemjs": "*",
|
|
||||||
"babel-plugin-transform-es2015-modules-umd": "*",
|
|
||||||
"babel-preset-es2015": "*",
|
|
||||||
"babelify": "*",
|
|
||||||
"browserify": "*",
|
"browserify": "*",
|
||||||
|
"babelify": "*",
|
||||||
|
"core-js": "*",
|
||||||
"chai": "*",
|
"chai": "*",
|
||||||
"commander": "*",
|
"commander": "*",
|
||||||
"es-module-loader": "*",
|
"es-module-loader": "*",
|
||||||
|
|
|
@ -4,7 +4,7 @@ const path = require('path');
|
||||||
const program = require('commander');
|
const program = require('commander');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const fse = require('fs-extra');
|
const fse = require('fs-extra');
|
||||||
const babel = require('babel-core');
|
const babel = require('@babel/core');
|
||||||
|
|
||||||
const SUPPORTED_FORMATS = new Set(['amd', 'commonjs', 'systemjs', 'umd']);
|
const SUPPORTED_FORMATS = new Set(['amd', 'commonjs', 'systemjs', 'umd']);
|
||||||
|
|
||||||
|
@ -134,8 +134,12 @@ function make_lib_files(import_format, source_maps, with_app_dir, only_legacy) {
|
||||||
|
|
||||||
// NB: we need to make a copy of babel_opts, since babel sets some defaults on it
|
// NB: we need to make a copy of babel_opts, since babel sets some defaults on it
|
||||||
const babel_opts = () => ({
|
const babel_opts = () => ({
|
||||||
plugins: [`transform-es2015-modules-${import_format}`],
|
plugins: [],
|
||||||
presets: ['es2015'],
|
presets: [
|
||||||
|
[ '@babel/preset-env',
|
||||||
|
{ targets: 'ie >= 11',
|
||||||
|
modules: import_format } ]
|
||||||
|
],
|
||||||
ast: false,
|
ast: false,
|
||||||
sourceMaps: source_maps,
|
sourceMaps: source_maps,
|
||||||
});
|
});
|
||||||
|
|
|
@ -33,10 +33,6 @@ module.exports = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'commonjs': {
|
'commonjs': {
|
||||||
optionsOverride: (opts) => {
|
|
||||||
// CommonJS supports properly shifting the default export to work as normal
|
|
||||||
opts.plugins.unshift("add-module-exports");
|
|
||||||
},
|
|
||||||
appWriter: (base_out_path, script_base_path, out_path) => {
|
appWriter: (base_out_path, script_base_path, out_path) => {
|
||||||
const browserify = require('browserify');
|
const browserify = require('browserify');
|
||||||
const b = browserify(path.join(script_base_path, 'app/ui.js'), {});
|
const b = browserify(path.join(script_base_path, 'app/ui.js'), {});
|
||||||
|
@ -60,9 +56,5 @@ module.exports = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'umd': {
|
'umd': {
|
||||||
optionsOverride: (opts) => {
|
|
||||||
// umd supports properly shifting the default export to work as normal
|
|
||||||
opts.plugins.unshift("add-module-exports");
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,8 +6,8 @@ It's based heavily on
|
||||||
https://github.com/ModuleLoader/browser-es-module-loader, but uses
|
https://github.com/ModuleLoader/browser-es-module-loader, but uses
|
||||||
WebWorkers to compile the modules in the background.
|
WebWorkers to compile the modules in the background.
|
||||||
|
|
||||||
To generate, run `rollup -c` in this directory, and then run `browserify
|
To generate, run `npx rollup -c` in this directory, and then run
|
||||||
src/babel-worker.js > dist/babel-worker.js`.
|
`./genworker.js`.
|
||||||
|
|
||||||
LICENSE
|
LICENSE
|
||||||
-------
|
-------
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
||||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
typeof define === 'function' && define.amd ? define(factory) :
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
(global = global || self, global.BrowserESModuleLoader = factory());
|
(global = global || self, global.BrowserESModuleLoader = factory());
|
||||||
}(this, function () { 'use strict';
|
}(this, (function () { 'use strict';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Environment
|
* Environment
|
||||||
|
@ -1477,5 +1477,5 @@
|
||||||
|
|
||||||
return BrowserESModuleLoader;
|
return BrowserESModuleLoader;
|
||||||
|
|
||||||
}));
|
})));
|
||||||
//# sourceMappingURL=browser-es-module-loader.js.map
|
//# sourceMappingURL=browser-es-module-loader.js.map
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
var fs = require("fs");
|
||||||
|
var browserify = require("browserify");
|
||||||
|
|
||||||
|
browserify("src/babel-worker.js")
|
||||||
|
.transform("babelify", {
|
||||||
|
presets: [ [ "@babel/preset-env", { targets: "ie >= 11" } ] ],
|
||||||
|
global: true,
|
||||||
|
ignore: [ "../../node_modules/core-js" ]
|
||||||
|
})
|
||||||
|
.bundle()
|
||||||
|
.pipe(fs.createWriteStream("dist/babel-worker.js"));
|
|
@ -1,12 +1,10 @@
|
||||||
/*import { transform as babelTransform } from 'babel-core';
|
// Polyfills needed for Babel to function
|
||||||
import babelTransformDynamicImport from 'babel-plugin-syntax-dynamic-import';
|
require("core-js");
|
||||||
import babelTransformES2015ModulesSystemJS from 'babel-plugin-transform-es2015-modules-systemjs';*/
|
|
||||||
|
|
||||||
// sadly, due to how rollup works, we can't use es6 imports here
|
var babelTransform = require('@babel/core').transform;
|
||||||
var babelTransform = require('babel-core').transform;
|
var babelTransformDynamicImport = require('@babel/plugin-syntax-dynamic-import');
|
||||||
var babelTransformDynamicImport = require('babel-plugin-syntax-dynamic-import');
|
var babelTransformModulesSystemJS = require('@babel/plugin-transform-modules-systemjs');
|
||||||
var babelTransformES2015ModulesSystemJS = require('babel-plugin-transform-es2015-modules-systemjs');
|
var babelPresetEnv = require('@babel/preset-env');
|
||||||
var babelPresetES2015 = require('babel-preset-es2015');
|
|
||||||
|
|
||||||
self.onmessage = function (evt) {
|
self.onmessage = function (evt) {
|
||||||
// transform source with Babel
|
// transform source with Babel
|
||||||
|
@ -17,8 +15,8 @@ self.onmessage = function (evt) {
|
||||||
moduleIds: false,
|
moduleIds: false,
|
||||||
sourceMaps: 'inline',
|
sourceMaps: 'inline',
|
||||||
babelrc: false,
|
babelrc: false,
|
||||||
plugins: [babelTransformDynamicImport, babelTransformES2015ModulesSystemJS],
|
plugins: [babelTransformDynamicImport, babelTransformModulesSystemJS],
|
||||||
presets: [babelPresetES2015],
|
presets: [ [ babelPresetEnv, { targets: 'ie >= 11' } ] ],
|
||||||
});
|
});
|
||||||
|
|
||||||
self.postMessage({key: evt.data.key, code: output.code, source: evt.data.source});
|
self.postMessage({key: evt.data.key, code: output.code, source: evt.data.source});
|
||||||
|
|
Loading…
Reference in New Issue