public ICssMinifier CreateMinifier(string minifierName)
        {
#if DNXCORE50
            ICssMinifier minifier = new KristensenCssMinifier();
#else
            ICssMinifier minifier;

            switch (minifierName)
            {
            case "KristensenCssMinifier":
                minifier = new KristensenCssMinifier();
                break;

            case "MsAjaxCssMinifier":
                minifier = new MsAjaxCssMinifier();
                break;

            case "YuiCssMinifier":
                minifier = new YuiCssMinifier();
                break;

            default:
                throw new NotSupportedException();
            }
#endif

            return(minifier);
        }
示例#2
0
        public ICssMinifier CreateMinifier(string minifierName)
        {
            ICssMinifier minifier;

            switch (minifierName)
            {
            case "KristensenCssMinifier":
                minifier = new KristensenCssMinifier();
                break;

#if !NETSTANDARD1_6
            case "MsAjaxCssMinifier":
                minifier = new MsAjaxCssMinifier();
                break;

            case "YuiCssMinifier":
                minifier = new YuiCssMinifier();
                break;
#endif
            case "NUglifyCssMinifier":
                minifier = new NUglifyCssMinifier();
                break;

            default:
                throw new NotSupportedException();
            }

            return(minifier);
        }
示例#3
0
        /// <summary>
        ///     method to minify the file
        /// </summary>
        /// <param name="results"></param>
        /// <param name="resultCss"></param>
        public void Minify(List <AnalysisResult> results, string resultCss)
        {
            try
            {
                string fileToProcess;
                if (InternalLinkCheck()) //Local file
                {
                    if (_file[0].Equals('/'))
                    {
                        _file = _file.Replace('/', Path.DirectorySeparatorChar);
                        _file = _file.Substring(1); //Remove first char
                    }
                    fileToProcess = Path.Combine(ProjectPath, _file);
                }
                else //Download
                {
                    var webClient = new WebClient();
                    webClient.DownloadFile(_file, "temp");
                    fileToProcess = "temp";
                }
                var fileInfo = new FileInfo(fileToProcess);
                Stadistics.TotalCssSize += fileInfo.Length; //Get size without minify
                var content      = File.ReadAllText(fileToProcess);
                var minifier     = new MsAjaxCssMinifier();
                var minifyResult = minifier.Minify(content, false);
                //Save file
                File.AppendAllText(Path.Combine(ProjectPath, "css", resultCss), minifyResult.MinifiedContent);

                //Errors
                results.AddRange(
                    minifyResult.Errors.Select(
                        error =>
                        new AnalysisResult(_file.Replace("release", "src"), error.LineNumber, Strings.Name,
                                           error.Message, ErrorType.Instance)));
                results.AddRange(
                    minifyResult.Warnings.Select(
                        warning =>
                        new AnalysisResult(_file.Replace("release", "src"), warning.LineNumber, Strings.Name,
                                           warning.Message, WarningType.Instance)));
            }
            catch (Exception)
            {
                results.Add(new AnalysisResult(_file, 0, Strings.Name, Strings.FileProblem, ErrorType.Instance));
            }
        }