Merge pull request #14 from dmitriylyner/enhancement/context-path

Enhancement/dynamicPublicPath - Take into account publicPath being set dynamically
This commit is contained in:
Alexandru Dima 2018-06-12 09:25:07 +02:00 committed by GitHub
commit 198d321805
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -83,22 +83,26 @@ function getPublicPath(compiler) {
return compiler.options.output && compiler.options.output.publicPath || ''; return compiler.options.output && compiler.options.output.publicPath || '';
} }
function stripTrailingSlash(string) {
return string.replace(/\/$/, '');
}
function createLoaderRules(languages, features, workers, publicPath) { function createLoaderRules(languages, features, workers, publicPath) {
if (!languages.length && !features.length) { return []; } if (!languages.length && !features.length) { return []; }
const languagePaths = languages.map(({ entry }) => entry).filter(Boolean); const languagePaths = languages.map(({ entry }) => entry).filter(Boolean);
const featurePaths = features.map(({ entry }) => entry).filter(Boolean); const featurePaths = features.map(({ entry }) => entry).filter(Boolean);
const workerPaths = workers.reduce((acc, { label, output }) => Object.assign(acc, { const workerPaths = fromPairs(workers.map(({ label, output }) => [label, output]));
[label]: `${publicPath ? `${stripTrailingSlash(publicPath)}/` : ''}${output}`,
}), {});
const globals = { const globals = {
'MonacoEnvironment': `(function (paths) { return { getWorkerUrl: function (moduleId, label) { return paths[label]; } }; } )(${ 'MonacoEnvironment': `(function (paths) {
JSON.stringify(workerPaths, null, 2) function stripTrailingSlash(str) {
})`, return str.replace(/\\/$/, '');
}
return {
getWorkerUrl: function (moduleId, label) {
const pathPrefix = (typeof window.__webpack_public_path__ === 'string' ? window.__webpack_public_path__ : ${JSON.stringify(publicPath)});
return (pathPrefix ? stripTrailingSlash(pathPrefix) + '/' : '') + paths[label];
}
};
})(${JSON.stringify(workerPaths, null, 2)})`,
}; };
return [ return [
{ {
test: MONACO_EDITOR_API_PATHS, test: MONACO_EDITOR_API_PATHS,