diff --git a/dev/tests/js/jasmine/tests/lib/mage/requirejs/mixins.test.js b/dev/tests/js/jasmine/tests/lib/mage/requirejs/mixins.test.js index 2cf6d4755ebb..a21481698b29 100644 --- a/dev/tests/js/jasmine/tests/lib/mage/requirejs/mixins.test.js +++ b/dev/tests/js/jasmine/tests/lib/mage/requirejs/mixins.test.js @@ -23,11 +23,12 @@ define(['rjsResolver', 'mixins'], function (resolver, mixins) { unbundledContext = require.s.contexts.$; }); - it('should copy nameToUrl from default context to unbundled context', function () { - expect(unbundledContext.nameToUrl).toBe(defContext.nameToUrl); + it('should keep a separate nameToUrl resolver in the unbundled context', function () { + expect(unbundledContext.nameToUrl).not.toBe(defContext.nameToUrl); }); - it('should not forward deps and callback to unbundled context during default context configure', function () { + it('should not forward deps, callback and bundles to unbundled context during ' + + 'default context configure', function () { var originalDeps = defContext.config.deps, originalCallback = defContext.config.callback, noop = function () {}, @@ -36,12 +37,18 @@ define(['rjsResolver', 'mixins'], function (resolver, mixins) { spyOn(unbundledContext, 'configure').and.callThrough(); defContext.configure({ + bundles: { + 'tests/assets/mixins/bundle': [ + 'tests/assets/mixins/bundled-module' + ] + }, deps: ['mixins'], callback: noop }); forwardedConfig = unbundledContext.configure.calls.mostRecent().args[0]; + expect(forwardedConfig.bundles).toBeUndefined(); expect(forwardedConfig.deps).toBeUndefined(); expect(forwardedConfig.callback).toBeUndefined(); diff --git a/lib/internal/Magento/Framework/RequireJs/Config.php b/lib/internal/Magento/Framework/RequireJs/Config.php index 20feb6dbaac2..2375bc5caa55 100644 --- a/lib/internal/Magento/Framework/RequireJs/Config.php +++ b/lib/internal/Magento/Framework/RequireJs/Config.php @@ -18,54 +18,55 @@ class Config /** * Name of sub-directory where generated RequireJs config is placed * - * @deprecated since 2.2.0 RequireJS Configuration file is moved into package directory + * @deprecated since 2.2.0 The generated RequireJS configuration is stored in package-specific config paths. + * @see \Magento\Framework\RequireJs\Config::getConfigFileRelativePath() */ - const DIR_NAME = '_requirejs'; + public const DIR_NAME = '_requirejs'; /** * File name of RequireJs config */ - const CONFIG_FILE_NAME = 'requirejs-config.js'; + public const CONFIG_FILE_NAME = 'requirejs-config.js'; /** * File name of RequireJs mixins */ - const MIXINS_FILE_NAME = 'mage/requirejs/mixins.js'; + public const MIXINS_FILE_NAME = 'mage/requirejs/mixins.js'; /** * File name of RequireJs */ - const REQUIRE_JS_FILE_NAME = 'requirejs/require.js'; + public const REQUIRE_JS_FILE_NAME = 'requirejs/require.js'; /** * File name of StaticJs */ - const STATIC_FILE_NAME = 'mage/requirejs/static.js'; + public const STATIC_FILE_NAME = 'mage/requirejs/static.js'; /** * File name of minified files resolver */ - const MIN_RESOLVER_FILENAME = 'requirejs-min-resolver.js'; + public const MIN_RESOLVER_FILENAME = 'requirejs-min-resolver.js'; /** * File name of RequireJs mixins */ - const MAP_FILE_NAME = 'requirejs-map.js'; + public const MAP_FILE_NAME = 'requirejs-map.js'; /** * File name of BaseUrlInterceptorJs */ - const URL_RESOLVER_FILE_NAME = 'mage/requirejs/baseUrlResolver.js'; + public const URL_RESOLVER_FILE_NAME = 'mage/requirejs/baseUrlResolver.js'; /** * File name of StaticJs */ - const BUNDLE_JS_DIR = 'js/bundle'; + public const BUNDLE_JS_DIR = 'js/bundle'; /** * Template for combined RequireJs config file */ - const FULL_CONFIG_TEMPLATE = <<minification->getExcludes('js') as $expression) { $excludes[] = '!url.match(/' . str_replace('/', '\/', $expression) . '/)'; } - $excludesCode = empty($excludes) ? 'true' : implode('&&', $excludes); + $excludesCode = implode('&&', $excludes); $result = <<