После оптимизации проекта с помощью r.js и создания concatinated-minified main.js браузер по-прежнему загружает файлы js из соответствующей папки dist/.
Angular проект, в котором я участвую, использует RequireJS. Сейчас я пытаюсь оптимизировать проект с помощью r.js.
Вот моя угловая структура проекта
.
|_ js // all the libaries are in here
|_ css // all style sheets
|_ ngApp // app.js and some config files
|_ ngControllers
|_ ngServices
|_ ngFilters
|_ ngTemplates
|_ ngViews
|_ ng_modules
|
|_ build.js
|_ index.html
|_ main.js // RequireJS paths and shims
|_ r.js
Ниже приведен мой скрипт сборки r.js
({
dir: 'dist',// the output directory
optimizeCss: 'standard',
removeCombined: true,
mainConfigFile: 'main.js',
name : 'main',
fileExclusionRegExp: /^((r|build|gulpfile)\.js|(node_modules))$/
})
Тег скрипта, используемый для добавления RequireJS, находится ниже.
<script data-main="main" src="js/require.js"></script>
Мой конфиг require.js в main.js
'use strict';
require.config({
waitSeconds: 0,
paths: {
jquery: 'js/jquery-1.11.3.min',
angular: 'js/angular.min',
angularAnimate: 'js/angular-animate.min',
app: 'ngApp/app',
/*Directives - Start*/
masterHeaderDirective: 'ngDirectives/master-header-directive',
.
.
.
/*Directives - End*/
/*Services - Start*/
interceptor: 'ngServices/Common/app-service-interceptor',
.
.
.
/*Services - Start*/
/*register Filters - Start*/
currencySymbolFilter: 'ngFilters/currenySymbolFilter',
/*register Filters - End*/
/*Controllers - Start*/
mainController: 'ngControllers/mainController.js',
.
.
.
/*Controllers - Ends*/
/*textAngular*/
textAngular: 'js/textAngular/textAngular.min',
textAngularRangy: 'js/textAngular/textAngular-rangy.min',
textAngularSanitize: 'js/textAngular/textAngular-sanitize.min',
modernizr: 'js/modernizr.custom',
detectizr: 'js/detectizr',
/*i18n custom*/
i18nCustom : 'ngDirectives/i18n-custom-directive',
i18nCustomService : 'ngServices/Common/i18n-helper-service',
i18nCustomController : 'ngControllers/Common/i18n-helper-controller',
/*i18n custom ends*/
},
shim: {
'angular': { deps: ['jquery'], exports: 'angular' },
'angularAnimate': { deps: ['angular'] },
'angularRoute': { deps: ['angular'] },
'dirPagination': { deps: ['angular'] },
.
.
.
},
deps: ['app']
});
В конце сборки я получаю dist
папка со всеми моими файлами.js и.css, уменьшенными в соответствующих папках. Также, main.js
внутри папки dist содержится минимизированная конкатенация всех файлов, упомянутых в main.js.
Но когда я открываю свою папку dist в браузере, вместо использования контроллеров, служб и т. Д. Из мини-конкатенации main.js
загружаются из своих dist/folder
,
Если я удалю папку, например. dist/ngController
, приложение ломается, что означает, что наличие файлов в dist/ngController
внутри dist/main.js не соблюдается. Может ли кто-нибудь объяснить это поведение?