예제 #1
0
        public virtual string TransformText()
        {
            #line 5 "C:\Projects\sfdocsamples\SF\T4\Generar_javascript\T4Sample\JavascriptCruncher\JavascriptCruncherTemplate.tt"

            EnvDTE.Project            project        = EnvDteHelper.GetProject(this.Host);
            List <EnvDTE.ProjectItem> jsProjectItems = EnvDteHelper.GetJsProjectItems(project);

            ScriptCruncher cruncher       = new ScriptCruncher();
            CodeSettings   crunchSettings = new CodeSettings();
            crunchSettings.CollapseToLiteral    = true;
            crunchSettings.LocalRenaming        = LocalRenaming.CrunchAll;
            crunchSettings.StripDebugStatements = true;
            foreach (EnvDTE.ProjectItem item in jsProjectItems)
            {
                string itemFileName = item.FileNames[0];
                string jsCode       = File.ReadAllText(itemFileName);
                string jsMinified   = cruncher.Crunch(jsCode, crunchSettings);

                EnvDteHelper.SaveMinifiedCode(item, jsMinified);
                this.WriteLine("Processed: {0}", itemFileName);
            }
            this.WriteLine("done!");


            #line default
            #line hidden
            return(this.GenerationEnvironment.ToString());
        }
        public virtual string TransformText()
        {
            
            #line 5 "C:\Projects\sfdocsamples\SF\T4\Generar_javascript\T4Sample\JavascriptCruncher\JavascriptCruncherTemplate.tt"
 
EnvDTE.Project project = EnvDteHelper.GetProject(this.Host);
List<EnvDTE.ProjectItem> jsProjectItems = EnvDteHelper.GetJsProjectItems(project);

ScriptCruncher cruncher = new ScriptCruncher();
CodeSettings crunchSettings = new CodeSettings();
crunchSettings.CollapseToLiteral = true;
crunchSettings.LocalRenaming = LocalRenaming.CrunchAll;	
crunchSettings.StripDebugStatements=true;
foreach( EnvDTE.ProjectItem item in jsProjectItems)
{	
	string itemFileName = item.FileNames[0]; 
	string jsCode = File.ReadAllText(itemFileName);
	string jsMinified = cruncher.Crunch(jsCode, crunchSettings);
	
	EnvDteHelper.SaveMinifiedCode(item, jsMinified);
	this.WriteLine( "Processed: {0}", itemFileName);
}
this.WriteLine("done!");

            
            #line default
            #line hidden
            return this.GenerationEnvironment.ToString();
        }
        /// <summary>
        /// Compressed the javascript content
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public string Compress(string content)
        {
            // The CodeSettings object specifies how the content
            // will be minified
            var lCodeSettings = new CodeSettings();
            lCodeSettings.RemoveUnneededCode = true;
            lCodeSettings.LocalRenaming = LocalRenaming.CrunchAll;
            lCodeSettings.OutputMode = OutputMode.SingleLine;
            lCodeSettings.StripDebugStatements = true;
            lCodeSettings.W3CStrict = true;
            lCodeSettings.IndentSize = 0;

            var lValue = new ScriptCruncher().Crunch(content, lCodeSettings);
            return lValue;
        }
예제 #4
0
        public static string ProcessFiles(string concatString, string rootPath)
        {
            var crunch = new ScriptCruncher();
            var cs = new CodeSettings();
            cs.RemoveUnneededCode = true;
            cs.CollapseToLiteral = true;
            cs.CombineDuplicateLiterals = true;
            cs.InlineSafeStrings = true;
            cs.StripDebugStatements = true;
            cs.LocalRenaming = LocalRenaming.CrunchAll;
            cs.OutputMode = OutputMode.SingleLine;

            var minifyJavaScript = crunch.MinifyJavaScript(concatString, cs);
            return minifyJavaScript;
        }