缩小javascript文件的问题(asp.net应用程序)

时间:2017-03-29 11:56:23

标签: javascript c# asp.net ecmascript-6 bundling-and-minification

我有以下javascript代码:

class UrlParameters {

constructor() {
    this.initVariablesWithDefaultValues();
    var serverUrlData = HelperJSViewBag.getValue("UrlData", true);
    var urlVariables = serverUrlData ? serverUrlData : HLinks.getAllUrlVariables();
    var sessionID = this.convertToString(urlVariables["sessionID"]);
    var idSession = this.convertToString(urlVariables["idSession"]);
    var sessionid = this.convertToString(urlVariables["sessionid"]);

    if (idSession.length > 0)
        this.sessionID = idSession;
    else if (sessionid.length > 0)
        this.sessionID = sessionid;
    else 
        this.sessionID = sessionID;

    var countryISO = this.convertToString(urlVariables["countryISO"]);
    var country = this.convertToString(urlVariables["country"]);
    this.countryISO = countryISO.length > 0 ? countryISO : country;

    var productRef = this.convertToString(urlVariables["productRef"]);
    var pRef = this.convertToString(urlVariables["ref"]);
    var refproduct = this.convertToString(urlVariables["refproduct"]);
    var productReference = this.convertToString(urlVariables["productReference"]);

    if (productRef.length > 0)
        this.productReference = productRef;
    else if (pRef.length > 0)
        this.productReference = pRef;
    else if (refproduct.length > 0)
        this.productReference = refproduct;
    else
        this.productReference = productReference;

    var PartnerCode = this.convertToString(urlVariables["PartnerCode"]);
    var partnerCode = this.convertToString(urlVariables["partnerCode"]);

    this.partnerCode = PartnerCode.length > 0 ? PartnerCode : partnerCode;

    var themeReference = this.convertToString(urlVariables["themeReference"]);
    var theme = this.convertToString(urlVariables["theme"]);
    this.themeReference = themeReference.length > 0 ? themeReference : theme;

    this.projectName = this.convertToString(urlVariables["projectName"]);

    var coverReference = this.convertToString(urlVariables["coverReference"]);
    var refCover = this.convertToString(urlVariables["refCover"]);
    this.coverReference = coverReference.length > 0 ? coverReference : refCover;

    this.themeFill = this.convertToInt(urlVariables["themeFill"], 0);  // 0 -> directly without autofill ; 1 -> not directly without autofill ; 2 -> not directly quick autofill ; 3 -> not directly smart autofill
    this.smartOpt = this.convertToInt(urlVariables["smartOpt"], 2);  //1->faces,colors,dimentions; 2-> colors and dimentions; 3-> dimentions

    var open = this.convertToString(urlVariables["open"]);
    var projectCode = this.convertToString(urlVariables["projectCode"]);

    this.projectCode = open.length > 0 ? open : projectCode;

    this.productCode = this.convertToString(urlVariables["productCode"]);

    this.projectID = this.convertToString(urlVariables["projectID"]);

    var categoryID = this.convertToInt(urlVariables["categoryID"]);
    var cat = this.convertToInt(urlVariables["cat"]);
    this.categoryID = categoryID > 0 ? categoryID : cat;

    var subCategoryReference = this.convertToString(urlVariables["subCategoryReference"]);
    var subCat = this.convertToString(urlVariables["subCat"]);
    this.subCategoryReference = subCategoryReference.length > 0 ? subCategoryReference : subCat;

    var typeFinishID = this.convertToInt(urlVariables["typeFinishID"]);
    var refProdutFinish = this.convertToInt(urlVariables["refProdutFinish"]);
    var productTypeFinishID = this.convertToInt(urlVariables["productTypeFinishID"]);

    if (typeFinishID > 0)
        this.productTypeFinishID = typeFinishID;
    else if (refProdutFinish > 0)
        this.productTypeFinishID = refProdutFinish;
    else
        this.productTypeFinishID = productTypeFinishID;

    var coverTypeFinishID = this.convertToInt(urlVariables["coverTypeFinishID"]);
    var coverFinishID = this.convertToInt(urlVariables["coverFinishID"]);
    var refCoverFinish = this.convertToInt(urlVariables["refCoverFinish"]);

    if (coverTypeFinishID > 0) this.coverTypeFinishID = coverTypeFinishID;
    else if (coverFinishID > 0) this.coverTypeFinishID = coverFinishID;
    else this.coverTypeFinishID = refCoverFinish;

    var numPages = this.convertToInt(urlVariables["numPages"]);
    var refPages = this.convertToInt(urlVariables["refPages"]);
    var numberOfPages = this.convertToInt(urlVariables["numberOfPages"]);

    if (numPages > 0)
        this.numberOfPages = numPages;
    else if (refPages > 0)
        this.numberOfPages = refPages;
    else
        this.numberOfPages = numberOfPages;

    this.coverType = this.convertToString(urlVariables["coverType"]);

    var textureID = this.convertToString(urlVariables["textureID"]);
    var textureReference = this.convertToString(urlVariables["textureReference"]);

    if (textureID.length > 0) this.textureReference = textureID;
    else this.textureReference = textureReference;

    var textureColorID = this.convertToString(urlVariables["textureColorID"]);
    var textureColorReference = this.convertToString(urlVariables["textureColorReference"]);
    var refColor = this.convertToString(urlVariables["refColor"]);

    if (textureColorID.length > 0) this.textureColorReference = textureColorID;
    else if (refColor.length > 0) this.textureColorReference = refColor;
    else this.textureColorReference = textureColorReference;

    var windowID = this.convertToString(urlVariables["windowID"]);
    var refWindow = this.convertToString(urlVariables["refWindow"]);
    var windowReference = this.convertToString(urlVariables["windowReference"]);

    if (windowID.length > 0)
        this.windowReference = windowID;
    else if (refWindow.length > 0)
        this.windowReference = refWindow;
    else
        this.windowReference = windowReference;

    this.savedProject = this.convertToBoolean(urlVariables["savedProject"]);

    this.startMonth = this.convertToInt(urlVariables["startMonth"]);
    this.startYear = this.convertToInt(urlVariables["startYear"]);
    this.wantHolidays = this.convertToBoolean(urlVariables["wantHolidays"]);

    var frameID = this.convertToString(urlVariables["frameID"]);
    var frameReference = this.convertToString(urlVariables["frameReference"]);
    var canvasRef = this.convertToString(urlVariables["canvasRef"]);

    if (frameID.length > 0)
        this.frameReference = frameID;
    else if (canvasRef.length > 0)
        this.frameReference = canvasRef;
    else
        this.frameReference = frameReference;

    this.frameReference = frameID.length > 0 ? frameID : frameReference;

    var colorFrameID = this.convertToString(urlVariables["colorFrameID"]);
    var frameColorReference = this.convertToString(urlVariables["frameColorReference"]);
    var canvasColor = this.convertToString(urlVariables["canvasColor"]);

    if (colorFrameID.length > 0)
        this.frameColorReference = colorFrameID;
    else if (canvasColor.length > 0)
        this.frameColorReference = canvasColor;
    else
        this.frameColorReference = frameColorReference;

    this.albumXML = this.convertToString(urlVariables["albumXML"]);
    this.pagesXML = this.convertToString(urlVariables["pagesXML"]);

    var languageISO = this.convertToString(urlVariables["languageISO"]);
    var lang = this.convertToString(urlVariables["lang"]);

    if (languageISO.length > 0)
        this.languageISO = languageISO;
    else if (lang.length > 0)
        this.languageISO = lang;

    this.openThemeAccordion = this.convertToBoolean(urlVariables["openThemeAccordion"]);

    var galleryID = this.convertToString(urlVariables["galleryID"]);
    var galleryReference = this.convertToString(urlVariables["galleryReference"]);
    this.galleryReference = galleryID.length > 0 ? galleryID : galleryReference;

    var login_page = this.convertToString(urlVariables["login_page"]);
    var Login_Page = this.convertToString(urlVariables["Login_Page"]);
    this.Login_Page = this.convertToBoolean(login_page.length > 0 ? login_page : Login_Page);
    this.forceMobile = this.convertToBoolean(urlVariables["forceMobile"]);
    this.clientApplication = this.convertToString(urlVariables["clientApplication"]);
    this.goToPreview = this.convertToInt(urlVariables["goToPreview"]);
    this.orderID = this.convertToInt(urlVariables["orderID"], -1);

    this.CID = this.convertToString(urlVariables["CID"]);
    this.unblock = this.convertToBoolean(urlVariables["unblock"]);

    var idPartner = this.convertToInt(urlVariables["idPartner"]);
    var partnerID = this.convertToInt(urlVariables["partnerID"]);
    var idEmp = this.convertToInt(urlVariables["idEmp"]);
    this.forceException = this.convertToBoolean(urlVariables["forceException"]);

    if (idPartner > 0)
        this.partnerID = idPartner;
    else if (partnerID > 0)
        this.partnerID = partnerID;
    else if (idEmp > 0)
        this.partnerID = idEmp;

    this.goDirectlyToEditor = this.convertToBoolean(urlVariables["goDirectlyToEditor"]);
}

static getInstance() {
    if (typeof UrlParameters.urlParameters === "undefined")
        UrlParameters.urlParameters = new UrlParameters();

    return UrlParameters.urlParameters;
}

getData() {
    return {
        sessionID : this.sessionID,
        countryISO: this.countryISO,
        productReference: this.productReference,
        partnerCode: this.partnerCode,
        themeReference: this.themeReference,
        projectName: this.projectName,
        coverReference: this.coverReference,
        themeFill: this.themeFill,
        smartOpt: this.smartOpt,
        projectCode: this.projectCode,
        productCode: this.productCode,
        projectID: this.projectID,
        categoryID: this.categoryID,
        subCategoryReference: this.subCategoryReference,
        productTypeFinishID: this.productTypeFinishID,
        coverTypeFinishID: this.coverTypeFinishID,
        numberOfPages: this.numberOfPages,
        coverType: this.coverType,
        textureReference: this.textureReference,
        textureColorReference: this.textureColorReference,
        windowReference: this.windowReference,
        savedProject: this.savedProject,
        startMonth: this.startMonth,
        startYear: this.startYear,
        wantHolidays: this.wantHolidays,
        frameReference: this.frameReference,
        frameColorReference: this.frameColorReference,
        albumXML: this.albumXML,
        pagesXML: this.pagesXML,
        languageISO: this.languageISO,
        openThemeAccordion: this.openThemeAccordion,
        galleryReference: this.galleryReference,
        Login_Page: this.Login_Page,
        forceMobile: this.forceMobile,
        clientApplication: this.clientApplication,
        goToPreview: this.goToPreview,
        orderID: this.orderID,
        CID: this.CID,
        unblock: this.unblock,
        partnerID: this.partnerID,
        forceException: this.forceException,
        goDirectlyToEditor: this.goDirectlyToEditor

    }
}

getVariableOnce(name) {
    if (!this.variableOnce) this.variableOnce = this.getData();

    var value = this.variableOnce[name];
    delete this.variableOnce[name];

    return value;
}

initVariablesWithDefaultValues() {
    this.projectName = "";
    this.productReference = "";
    this.coverReference = "";
    this.textureReference = "";
    this.colorReference = "";
    this.windowReference = "";
    this.numberOfPages = 0;
    this.productTypeFinishID = 0;
    this.coverTypeFinishID = 0;
    this.canvasColor = "";
    this.projectCode = "";
    this.sessionID = "";
    this.countryISO = "";
    this.themeReference = "";
    this.themeFill = 0;
    this.smartOpt = 2;
    this.projectID = "";
    this.productCode = "";
    this.categoryID = -1;
    this.savedProject = false;
    this.startMonth = 0;
    this.startYear = 0;
    this.wantHolidays = false;
    this.albumXML = "";
    this.pagesXML = "";
    this.languageISO = "";
    this.Login_Page = false;
    this.frameReference = "";
    this.frameColorReference = "";
    this.partnerCode = "";
    this.partnerID = "";
    this.coverType = "";
    this.textureColorReference = ""
    this.subCategoryReference = "";
    this.openThemeAccordion = false;
    this.galleryReference = "";
    this.clientApplication = "";
    this.forceMobile = false;
    this.idUpload = 0;
    this.orderID = -1;
    this.idControl = 0;
    this.goToPreview = 0;
    this.unblock = false;
    this.CID = "";
    this.forceException = false;
    this.goDirectlyToEditor = false;
}

convertToString(value, defaultValue) {
    if (typeof defaultValue !== "var") defaultValue = "";

    if (value)
        return value;
    else
        return defaultValue;
}

convertToInt(value, defaultValue) {
    if (typeof defaultValue !== "number") defaultValue = 0;

    if (value)
        return parseInt(value);
    else
        return defaultValue;
}

convertToBoolean(value, defaultValue) {
    if (typeof defaultValue !== "boolean") defaultValue = false;

    if (value)
        return value;
    else
        return defaultValue;
}
}

当我使用BundleTable.EnableOptimizations = true运行我的应用程序时,asp.net不会缩小此文件。 Istead,返回一个包含以下错误的新文件:

/* Minification failed. Returning unminified contents.
(1,1-6): run-time error JS1195: Expected expression: class
(3,19-20): run-time error JS1004: Expected ';': {
(201,12-23): run-time error JS1004: Expected ';': getInstance
(201,26-27): run-time error JS1004: Expected ';': {
(208,15-16): run-time error JS1004: Expected ';': {
(256,27-28): run-time error JS1004: Expected ';': {
(265,38-39): run-time error JS1004: Expected ';': {
(314,42-43): run-time error JS1004: Expected ';': {
(323,39-40): run-time error JS1004: Expected ';': {
(332,43-44): run-time error JS1004: Expected ';': {
(341,1-2): run-time error JS1002: Syntax error: }
(336,13-25): run-time error JS1018: 'return' statement outside of function: return value
(338,13-32): run-time error JS1018: 'return' statement outside of function: return defaultValue
(327,13-35): run-time error JS1018: 'return' statement outside of function: return parseInt(value)
(329,13-32): run-time error JS1018: 'return' statement outside of function: return defaultValue
(318,13-25): run-time error JS1018: 'return' statement outside of function: return value
(320,13-32): run-time error JS1018: 'return' statement outside of function: return defaultValue
(262,9-21): run-time error JS1018: 'return' statement outside of function: return value
(209,9,253,10): run-time error JS1018: 'return' statement outside of function: return {
            sessionID : this.sessionID,
            countryISO: this.countryISO,
            productReference: this.productReference,
            partnerCode: this.partnerCode,
            themeReference: this.themeReference,
            projectName: this.projectName,
            coverReference: this.coverReference,
            themeFill: this.themeFill,
            smartOpt: this.smartOpt,
            projectCode: this.projectCode,
            productCode: this.productCode,
            projectID: this.projectID,
            categoryID: this.categoryID,
            subCategoryReference: this.subCategoryReference,
            productTypeFinishID: this.productTypeFinishID,
            coverTypeFinishID: this.coverTypeFinishID,
            numberOfPages: this.numberOfPages,
            coverType: this.coverType,
            textureReference: this.textureReference,
            textureColorReference: this.textureColorReference,
            windowReference: this.windowReference,
            savedProject: this.savedProject,
            startMonth: this.startMonth,
            startYear: this.startYear,
            wantHolidays: this.wantHolidays,
            frameReference: this.frameReference,
            frameColorReference: this.frameColorReference,
            albumXML: this.albumXML,
            pagesXML: this.pagesXML,
            languageISO: this.languageISO,
            openThemeAccordion: this.openThemeAccordion,
            galleryReference: this.galleryReference,
            Login_Page: this.Login_Page,
            forceMobile: this.forceMobile,
            clientApplication: this.clientApplication,
            goToPreview: this.goToPreview,
            orderID: this.orderID,
            CID: this.CID,
            unblock: this.unblock,
            partnerID: this.partnerID,
            forceException: this.forceException,
            goDirectlyToEditor: this.goDirectlyToEditor

        }
(205,9-43): run-time error JS1018: 'return' statement outside of function: return UrlParameters.urlParameters
 */

我在互联网上搜索了很多,但我没有找到任何解决方案。也许,这是因为我使用的是ES6标准?

我正在使用System.Web.Optimization的1.1.0.0版本。

1 个答案:

答案 0 :(得分:0)

System.Web.Optimization不支持ES6语法

我建议您将gulpgruntwebpack集成到构建过程中以缩小脚本