Remove unused codepen resources, duplicate bootstrap / jquery js
Use push instead of setting by index, gets rid of some empty lines generated by sparse resource array
This commit is contained in:
@@ -9,9 +9,11 @@ const promisify = require('util').promisify;
|
|||||||
const RawSource = require('webpack-sources').RawSource;
|
const RawSource = require('webpack-sources').RawSource;
|
||||||
|
|
||||||
const readFile = promisify(fs.readFile);
|
const readFile = promisify(fs.readFile);
|
||||||
const isCssRegEx = /\.css$/;
|
const isCssRegEx = /\.css(\?.*)?$/;
|
||||||
const isJsRegEx = /\.js(\?.*)?$/;
|
const isJsRegEx = /\.js(\?.*)?$/;
|
||||||
const importRegEx = /^import .* from '(.*)';$/;
|
const importRegEx = /^import .* from '(.*)';$/;
|
||||||
|
const isTemplateJs = /\/(jquery(-\d+\.\d+\.\d+)?|(bootstrap(\.bundle)?))(\.min)?\.js(\?.*)?$/;
|
||||||
|
const isTemplateCss = /\/bootstrap(\.min)?\.css(\?.*)?$/;
|
||||||
|
|
||||||
handlebars.registerHelper(
|
handlebars.registerHelper(
|
||||||
'md',
|
'md',
|
||||||
@@ -361,41 +363,34 @@ class ExampleBuilder {
|
|||||||
|
|
||||||
// add additional resources
|
// add additional resources
|
||||||
if (data.resources) {
|
if (data.resources) {
|
||||||
const resources = [];
|
const localResources = [];
|
||||||
const remoteResources = [];
|
const remoteResources = [];
|
||||||
const codePenResources = [];
|
data.resources.forEach((resource) => {
|
||||||
for (let i = 0, ii = data.resources.length; i < ii; ++i) {
|
const remoteResource = /^https?:\/\//.test(resource)
|
||||||
const resource = data.resources[i];
|
? resource
|
||||||
const remoteResource =
|
: `https://openlayers.org/en/v${pkg.version}/examples/${resource}`;
|
||||||
resource.indexOf('//') === -1
|
|
||||||
? `https://openlayers.org/en/v${pkg.version}/examples/${resource}`
|
|
||||||
: resource;
|
|
||||||
codePenResources[i] = remoteResource;
|
|
||||||
if (isJsRegEx.test(resource)) {
|
if (isJsRegEx.test(resource)) {
|
||||||
resources[i] = `<script src="${resource}"></script>`;
|
if (!isTemplateJs.test(resource)) {
|
||||||
remoteResources[i] = `<script src="${remoteResource}"></script>`;
|
localResources.push(`<script src="${resource}"></script>`);
|
||||||
} else if (isCssRegEx.test(resource)) {
|
|
||||||
if (resource.indexOf('bootstrap.min.css') === -1) {
|
|
||||||
resources[i] = '<link rel="stylesheet" href="' + resource + '">';
|
|
||||||
}
|
}
|
||||||
remoteResources[i] =
|
remoteResources.push(`<script src="${remoteResource}"></script>`);
|
||||||
'<link rel="stylesheet" href="' + remoteResource + '">';
|
} else if (isCssRegEx.test(resource)) {
|
||||||
|
if (!isTemplateCss.test(resource)) {
|
||||||
|
localResources.push(`<link rel="stylesheet" href="${resource}">`);
|
||||||
|
}
|
||||||
|
remoteResources.push(
|
||||||
|
`<link rel="stylesheet" href="${remoteResource}">`
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'Invalid value for resource: ' +
|
`Invalid resource: '${resource}' is not .js or .css: ${data.filename}`
|
||||||
resource +
|
|
||||||
' is not .js or .css: ' +
|
|
||||||
data.filename
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
data.extraHead = {
|
data.extraHead = {
|
||||||
local: resources.join('\n'),
|
local: localResources.join('\n'),
|
||||||
remote: remoteResources.join('\n'),
|
remote: remoteResources.join('\n'),
|
||||||
};
|
};
|
||||||
data.extraResources = data.resources.length
|
|
||||||
? ',' + codePenResources.join(',')
|
|
||||||
: '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const templatePath = path.join(this.templates, data.layout);
|
const templatePath = path.join(this.templates, data.layout);
|
||||||
|
|||||||
Reference in New Issue
Block a user