From 3da0fef5d2778dabf0068487673c6d87eacb6623 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Sun, 10 Apr 2022 13:34:46 +0200 Subject: [PATCH] invalidate cache --- apps/remix-ide/src/assets/js/init.js | 52 -------------- apps/remix-ide/src/assets/js/loader.js | 22 ++++++ apps/remix-ide/src/assets/version.json | 1 + apps/remix-ide/src/index.html | 71 +++++++----------- apps/remix-ide/src/index.tsx | 38 +++++----- apps/remix-ide/src/main.js | 21 ++++++ apps/remix-ide/src/production.index.html | 69 +++++++----------- apps/remix-ide/src/webpack.index.html | 92 ++++++------------------ apps/remix-ide/webpack.config.js | 10 +++ 9 files changed, 148 insertions(+), 228 deletions(-) delete mode 100644 apps/remix-ide/src/assets/js/init.js create mode 100644 apps/remix-ide/src/assets/js/loader.js create mode 100644 apps/remix-ide/src/assets/version.json diff --git a/apps/remix-ide/src/assets/js/init.js b/apps/remix-ide/src/assets/js/init.js deleted file mode 100644 index 8265067b82..0000000000 --- a/apps/remix-ide/src/assets/js/init.js +++ /dev/null @@ -1,52 +0,0 @@ -/* eslint-disable prefer-promise-reject-errors */ -function urlParams() { - var qs = window.location.hash.substr(1) - - if (window.location.search.length > 0) { - // use legacy query params instead of hash - window.location.hash = window.location.search.substr(1) - window.location.search = '' - } - - var params = {} - var parts = qs.split('&') - for (var x in parts) { - var keyValue = parts[x].split('=') - if (keyValue[0] !== '') { - params[keyValue[0]] = keyValue[1] - } - } - return params -} -const defaultVersion = '0.8.0' -const versionToLoad = urlParams().appVersion ? urlParams().appVersion : defaultVersion - -const assets = { - '0.8.0': ['https://use.fontawesome.com/releases/v5.8.1/css/all.css', 'assets/css/pygment_trac.css'], - '0.7.7': ['assets/css/font-awesome.min.css', 'assets/css/pygment_trac.css'] -} -const versions = { - '0.7.7': 'assets/js/0.7.7/app.js', // commit 7b5c7ae3de935e0ccc32eadfd83bf7349478491e - '0.8.0': 'main.js' -} -for (const k in assets[versionToLoad]) { - const app = document.createElement('link') - app.setAttribute('rel', 'stylesheet') - app.setAttribute('href', assets[versionToLoad][k]) - if (assets[versionToLoad][k] === 'https://use.fontawesome.com/releases/v5.8.1/css/all.css') { - app.setAttribute('integrity', 'sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf') - app.setAttribute('crossorigin', 'anonymous') - } - document.head.appendChild(app) -} - -window.onload = () => { - function loadApp() { - const app = document.createElement('script') - app.setAttribute('src', versions[versionToLoad]) - document.body.appendChild(app) - } - - loadApp() - return -} diff --git a/apps/remix-ide/src/assets/js/loader.js b/apps/remix-ide/src/assets/js/loader.js new file mode 100644 index 0000000000..06ebace333 --- /dev/null +++ b/apps/remix-ide/src/assets/js/loader.js @@ -0,0 +1,22 @@ +createScriptTag = function(url, type) { + var script = document.createElement('script'); + script.src = url; + script.type = type; + script.async = false; + script.defer = true; + document.getElementsByTagName('head')[0].appendChild(script); +}; + +fetch('assets/version.json').then(response => { + response.text().then(function(data) { + console.log(data); + const version = JSON.parse(data).version; + console.log(`Loading Remix ${version}`); + createScriptTag(`main.${version}.js`, 'text/javascript'); + createScriptTag(`polyfills.${version}.js`, 'module'); + if (version.includes('dev')) { + createScriptTag(`vendor.${version}.js`, 'module'); + createScriptTag(`runtime.js`, 'module'); + } + }); +}); diff --git a/apps/remix-ide/src/assets/version.json b/apps/remix-ide/src/assets/version.json new file mode 100644 index 0000000000..a8cd76337b --- /dev/null +++ b/apps/remix-ide/src/assets/version.json @@ -0,0 +1 @@ +{"version":"0.23.0-dev"} \ No newline at end of file diff --git a/apps/remix-ide/src/index.html b/apps/remix-ide/src/index.html index 1fa68cd3b5..fdc4e64d69 100644 --- a/apps/remix-ide/src/index.html +++ b/apps/remix-ide/src/index.html @@ -1,9 +1,10 @@ - - - - - Remix - Ethereum IDE - - - - - - - - - - - -
- - - - - - - - + + Remix - Ethereum IDE + + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/apps/remix-ide/src/index.tsx b/apps/remix-ide/src/index.tsx index 1957e2b28d..ed32b38c03 100644 --- a/apps/remix-ide/src/index.tsx +++ b/apps/remix-ide/src/index.tsx @@ -8,20 +8,26 @@ import Config from './config' import Registry from './app/state/registry' import { Storage } from '@remix-project/remix-lib' -(async function() { - // load current theme befor anything else - try { - const configStorage = new Storage('config-v0.8:') - const config = new Config(configStorage); - Registry.getInstance().put({ api: config, name: 'config' }) - } catch (e) {} - const theme = new ThemeModule() - theme.initTheme() +window.onload = () => { + function loadApp() { + // load current theme befor anything else + try { + const configStorage = new Storage('config-v0.8:') + const config = new Config(configStorage); + Registry.getInstance().put({ api: config, name: 'config' }) + } catch (e) {} + const theme = new ThemeModule() + theme.initTheme() + + render( + + + , + document.getElementById('root') + ) + } + loadApp() + return +} + - render( - - - , - document.getElementById('root') - ) -})() diff --git a/apps/remix-ide/src/main.js b/apps/remix-ide/src/main.js index d4649695c0..41c600dcc5 100644 --- a/apps/remix-ide/src/main.js +++ b/apps/remix-ide/src/main.js @@ -1 +1,22 @@ import './index' + +const domains = { + 'remix-alpha.ethereum.org': 27, + 'remix-beta.ethereum.org': 25, + 'remix.ethereum.org': 23 +} +if (domains[window.location.hostname]) { + var _paq = window._paq = window._paq || [] + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(['disableCookies']); + _paq.push(['enableJSErrorTracking']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://matomo.ethereum.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']) + _paq.push(['setSiteId', domains[window.location.hostname]]) + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0] + g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s) + })() +} \ No newline at end of file diff --git a/apps/remix-ide/src/production.index.html b/apps/remix-ide/src/production.index.html index 88a30663d6..fdc4e64d69 100644 --- a/apps/remix-ide/src/production.index.html +++ b/apps/remix-ide/src/production.index.html @@ -1,9 +1,10 @@ - - - - - Remix - Ethereum IDE - - - - - - - - - - - -
- - - - - - + + Remix - Ethereum IDE + + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/apps/remix-ide/src/webpack.index.html b/apps/remix-ide/src/webpack.index.html index 3caad120ea..8e1f7b6db1 100644 --- a/apps/remix-ide/src/webpack.index.html +++ b/apps/remix-ide/src/webpack.index.html @@ -1,23 +1,20 @@ - - - - - Remix - Ethereum IDE - - - - - - -
- + + + + + - if (window.location.search.length > 0) { - // use legacy query params instead of hash - window.location.hash = window.location.search.substr(1) - window.location.search = '' - } +
+ + + - var params = {} - var parts = qs.split('&') - for (var x in parts) { - var keyValue = parts[x].split('=') - if (keyValue[0] !== '') { - params[keyValue[0]] = keyValue[1] - } - } - return params - } - const defaultVersion = '0.8.0' - let versionToLoad = urlParams().appVersion ? urlParams().appVersion : defaultVersion - - let assets = { - '0.8.0': ['https://use.fontawesome.com/releases/v5.8.1/css/all.css', 'assets/css/pygment_trac.css'], - '0.7.7': ['assets/css/font-awesome.min.css', 'assets/css/pygment_trac.css'] - } - let versions = { - '0.7.7': 'assets/js/0.7.7/app.js', // commit 7b5c7ae3de935e0ccc32eadfd83bf7349478491e - '0.8.0': 'main.js' - } - for (let k in assets[versionToLoad]) { - let app = document.createElement('link') - app.setAttribute('rel', 'stylesheet') - app.setAttribute('href', assets[versionToLoad][k]) - if (assets[versionToLoad][k] === 'https://use.fontawesome.com/releases/v5.8.1/css/all.css') { - app.setAttribute('integrity', 'sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf') - app.setAttribute('crossorigin', 'anonymous') - } - document.head.appendChild(app) - } - window.onload = () => { - BrowserFS.install(window) - BrowserFS.configure({ - fs: "LocalStorage" - }, function(e) { - if (e) console.log(e) - let app = document.createElement('script') - app.setAttribute('src', versions[versionToLoad]) - document.body.appendChild(app) - window.remixFileSystem = require('fs') - }) - } - - - + \ No newline at end of file diff --git a/apps/remix-ide/webpack.config.js b/apps/remix-ide/webpack.config.js index 6a3f8e355e..502b0d21aa 100644 --- a/apps/remix-ide/webpack.config.js +++ b/apps/remix-ide/webpack.config.js @@ -1,6 +1,12 @@ const nxWebpack = require('@nrwl/react/plugins/webpack') const TerserPlugin = require('terser-webpack-plugin') const CopyWebpackPlugin = require('copy-webpack-plugin') +const version = require('../../package.json').version +const fs = require('fs') + +fs.writeFileSync('./apps/remix-ide/src/assets/version.json', JSON.stringify({ + version: version, +})) module.exports = config => { const nxWebpackConfig = nxWebpack(config) @@ -14,6 +20,10 @@ module.exports = config => { module: 'empty', child_process: 'empty' }, + output: { + ...nxWebpackConfig.output, + chunkFilename: `[name].${version}.js`, + }, plugins: [ ...nxWebpackConfig.plugins, new CopyWebpackPlugin({