Можете ли да минимизирате няколко файла в един?

Моят код на JavaScript е разделен на няколко файла, като всички използват модела на модула (актуализиране на една глобална променлива, да речем MyApp, с нови функции и членове.

Ще бъде ли възможно да се минимизират файловете в един и да не се развалят обхватите

Пример, който искам да минимизирам:

Файл1.js

var Module = (function(ns) {

 ns.fun1 = function() { alert('fun1'); };
 return ns;

})(Module || {});

Файл2.js

var Module = (function(ns) {

 ns.fun2 = function() { alert('fun2'); };
 return ns;

})(Module || {});

person Joshua MN    schedule 21.02.2013    source източник
comment
Бързо шш: cat one.js two.js three.js | uglifyjs -m -c -o out.min.js   -  person elclanrs    schedule 21.02.2013
comment
Ще бъде ли възможно да се минимизират файловете в един и да не се развалят добре обхватите, вие написахте кода, минимизирането не разваля обхватите, вашият код го прави ...   -  person mpm    schedule 21.02.2013
comment
@elclanrs нямам това uglifyjs приложение, бихте ли публикували отговор, показващ какъв е полученият код? Може би е същото като това на Google Closure?   -  person Joshua MN    schedule 21.02.2013
comment
@JoshuaMN: Всичко, от което се нуждаете, е NodeJS и можете да инсталирате UglifyJS с npm install -g uglifyjs, след което трябва да е достъпен за цялата система. Ако използвате Windows, инсталирайте по-добра конзола или просто инсталирайте git.   -  person elclanrs    schedule 21.02.2013


Отговори (2)


Да, можете и е добър начин за работа за всички, особено ако участват повече разработчици и това е здравословно за приложението.

Използвам класа Minify (http://code.google.com/p/minify/ ) със специален конфигурационен файл (https://beat.snipt.net/minify-config-file-minify-each-folder-from-project-1-minified-file/), който сканира моите папки и създава за всяка подпапка файл ( JS или CSS). По този начин мога да направя модулни JS или CSS файлове, които могат да бъдат разделени на класове или обикновени файлове.

Ключът е РЕДЪТ на файловете, в зависимост от функциите за папка за четене и типа на ОС може да е различен (напр. php readdir срещу scandir)

person BG Adrian    schedule 27.02.2013

Глобалният обхват всъщност е глобален, тъй като няма значение дали го променяте от един файл или няколко файла. Редът на вашите файлове обаче може да има значение, в зависимост от модела на модула, който използвате. За добро описание, обхващащо и частното състояние на различни файлове, прочетете това: http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth

person depoulo    schedule 21.02.2013