/// <summary> /// 编译后输出cshtml文件,返回出错信息 /// </summary> /// <param name="sPath">原路径</param> /// <param name="tPath">目标路径</param> /// <returns></returns> private static string OutPutCshtml(string sPath, string tPath) { Tuple <bool, string> result = JsonCfg.GlobleVar == null? RazorCshtml.BuildCshtml(sPath) : RazorCshtml.BuildCshtml(sPath, JsonCfg.GlobleVar); if (result.Item1 == false) { // 编译失败时 return($"ERR: 发布失败{Environment.NewLine}{result.Item2}"); } // 改成html扩展名 string targetPath = $"{tPath.Substring(0, tPath.Length - "CSHTML".Length)}html"; // 选择压缩输出时 if (new int[] { 1, 3, 5, 7 }.Contains(JsonCfg.MiniOutput)) { string html = Minifier.Html(result.Item2); // 如果压缩不成功,直接输出原html if (html == null) { File.WriteAllText(targetPath, result.Item2); return("INFO: 发布成功,但压缩html失败,请检查html语法错误"); } File.WriteAllText(targetPath, html); return("INFO: 发布成功"); } File.WriteAllText(targetPath, result.Item2); return("INFO: 发布成功"); }
/// <summary> /// 输出文件,如果是js,css,则判断是否需要压缩输出,cshtml文件则编译,其它文件原样输出 /// </summary> /// <param name="sPath">原路径</param> /// <param name="tPath">目标路径</param> /// <returns></returns> private static string OutPutFile(string sPath, string tPath) { string extName = Path.GetExtension(sPath).ToLower(); // if (extName == ".cshtml") { return(OutPutCshtml(sPath, tPath)); } string msg = "INFO: 发布成功"; // js if (extName == ".js" && new int[] { 4, 5, 6, 7 }.Contains(JsonCfg.MiniOutput)) { string js = Minifier.Js(File.ReadAllText(sPath)); if (js == null) { File.Copy(sPath, tPath, true); return("INFO: 发布成功,但压缩js失败,请检查js语法错误"); } File.WriteAllText(tPath, js); return(msg); } // css if (extName == ".css" && new int[] { 2, 3, 6, 7 }.Contains(JsonCfg.MiniOutput)) { string css = Minifier.Css(File.ReadAllText(sPath)); if (css == null) { File.Copy(sPath, tPath, true); return("INFO: 发布成功,但压缩js失败,请检查js语法错误"); } File.WriteAllText(tPath, css); return(msg); } // html if (extName.IndexOf(".html") >= 0 && new int[] { 1, 3, 5, 7 }.Contains(JsonCfg.MiniOutput)) { string html = Minifier.Html(File.ReadAllText(sPath)); // 如果压缩不成功,直接输出原html if (html == null) { File.Copy(sPath, tPath, true); return("INFO: 发布成功,但压缩html失败,请检查html语法错误"); } File.WriteAllText(tPath, html); return(msg); } // 其它文件,直接输出 File.Copy(sPath, tPath, true); return(msg); }