feat(ssr): add ionic angular server (#18880)

This commit is contained in:
Adam Bradley
2019-08-06 12:24:42 -05:00
committed by GitHub
parent 713ea8adaa
commit 84e306c1a6
44 changed files with 466 additions and 11616 deletions

View File

@@ -1,24 +1,30 @@
module.exports.applyPolyfills = function() { return Promise.resolve() };
module.exports.defineCustomElements = function(_, opts = {}) {
return new Promise((resolve, reject) => {
const doc = document;
const mod = doc.createElement('script');
mod.setAttribute('type', 'module');
mod['data-opts'] = opts;
mod.src = '__CDN_LOADER_URL__/dist/ionic/ionic.esm.js';
const legacy = doc.createElement('script');
legacy.setAttribute('nomodule', '');
legacy['data-opts'] = opts;
legacy.src = '__CDN_LOADER_URL__/dist/ionic/ionic.js';
exports.applyPolyfills = function() { return Promise.resolve() };
mod.onload = resolve;
mod.onerror = reject;
exports.defineCustomElements = function(_, opts) {
return new Promise(function(resolve, reject) {
if (typeof document !== 'undefined') {
opts = opts || {};
var mod = document.createElement('script');
mod.setAttribute('type', 'module');
mod['data-opts'] = opts;
mod.src = '__CDN_LOADER_URL__/dist/ionic/ionic.esm.js';
legacy.onload = resolve;
legacy.onerror = reject;
var legacy = document.createElement('script');
legacy.setAttribute('nomodule', '');
legacy['data-opts'] = opts;
legacy.src = '__CDN_LOADER_URL__/dist/ionic/ionic.js';
doc.head.appendChild(mod);
doc.head.appendChild(legacy);
mod.onload = resolve;
mod.onerror = reject;
legacy.onload = resolve;
legacy.onerror = reject;
document.head.appendChild(mod);
document.head.appendChild(legacy);
} else {
resolve();
}
});
}

View File

@@ -6,10 +6,12 @@
const fs = require('fs');
const path = require('path');
const version = process.argv[2];
let version = process.argv[2];
if (!version) {
throw new Error('version arg missing');
if (version) {
version = '@' + version;
} else {
version = '';
}
const srcPath = path.join(__dirname, 'cdn-loader.js');
@@ -19,7 +21,7 @@ let scriptContent = fs.readFileSync(srcPath, 'utf-8');
scriptContent = scriptContent.replace(
/__CDN_LOADER_URL__/g,
'https://cdn.jsdelivr.net/npm/@ionic/core@' + version
'https://cdn.jsdelivr.net/npm/@ionic/core' + version
);
fs.writeFileSync(path.join(__dirname, '..', 'loader', 'cdn.js'), scriptContent);