2009-10-06 8 views
12

Wenn ich Anwendung entwickeln, möchte ich jquery-1.3.2.js verwenden, und wenn ich es bereitstellen, möchte ich Jquery verwenden -1.3.2.min.js?wechseln zwischen jquery-1.3.2.js und jquery-1.3.2.min.js

Was ist der beste Weg, um zwischen zwei zu wechseln, ohne manuell einen kommentieren und auskommentieren.

Danke.

+2

Warum verwenden Sie nicht immer nur die min one? – recursive

+0

manchmal möchte ich in einige jquery-Funktion debuggen, ich denke, die Nicht-min-lesbarer ist besser. –

Antwort

2

Benennen Sie beide Dateien jquery.js zum Beispiel, und legen Sie sie in einen Ordner (libs) Wenn Sie deply, nicht lib-Ordner bereitstellen.

+0

Oder verwenden Sie einfach einen symbolischen Link. –

+0

Hat Windows symbolische Links? – middus

2

Ich bin sicher, jemand kann diese Antwort in asp.net übersetzen: Ich mache eine bedingte basierend auf meiner APPLICATION_ENVIRONMENT in meinen Projekten definiert. Nicht sicher, ob es eine ähnliche Sache in asp.net gibt, aber wenn Sie auf einem Produktionsserver sind, können Sie .min bedienen - und auf einer Entwicklungs-/Testmaschine können Sie die volle Bibliothek bedienen.

1

Wenn Sie programmatisch die Erklärung hinzufügen, dann der beste Weg ist, um die

#if DEBUG 

Compiler-Direktive zu verwenden. Verwenden Sie im DEBUG-Bereich Ihre vollständig erweiterte Bibliothek und im Nicht-DEBUG (wenn Sie im Veröffentlichungsmodus für die Veröffentlichung kompilieren) die .min-Version. Dann müssen Sie sich nur darum kümmern, dass Sie die Version kompilieren, wenn Sie live gehen.

Alternativ haben separate .config-Dateien für Ihre verschiedenen Release-Umgebungen und geben Sie Ihre Javascript-Includes in dort.

MSDN link to compiler directives.

+0

Das scheint das zu sein, worüber ich in meiner Antwort spreche. – gnarf

+0

Scheint zu sein. Außer ich schlage 2 Alternativen vor und ich habe auch Beispiele und Links hinzugefügt, die im Allgemeinen hilfreicher sind. Auch dies ist asp.net-mvc markiert, so dass meine Antwort .net spezifisch war. Also wirklich, nicht so ähnlich. – Evildonald

0

Sie können Skript als jquery.js nennen. Und fügen Sie zwei weitere js-Dateien hinzu. Zuerst wird als jquery.js.debug, andere onw jquery.js.release benannt. Und beim Kompilieren der Anwendung verwenden Sie die entsprechende js-Datei.

Ich verwende es, um web.config Dateien zu ändern. Zusätzliche Informationen können here gegründet werden.

0

Wenn Sie django verwenden, können Sie django-compress verwenden, um dies automatisch zu handhaben.

8

Ich habe eine HtmlHelper-Erweiterung-Methode, um meine JavaScript-Dateien zu laden. Es sieht so etwas wie dieses ...

public static string JavascriptTag(this HtmlHelper html, string javascriptName) 
{ 
    var format = "<script src=\"/Content/Scripts/{0}.js\" type=\"text/javascript\"></script>\r\n"; 

#if (!DEBUG) 
    javascriptName += ".min"; 
#endif 

    return string.Format(format, javascriptName); 
} 

, die sehr einfach genannt wird, mag:

<%= Html.JavascriptTag("jquery-1.3.2") %> 
<%= Html.JavascriptTag("general") %> 

ich diese Konvention verwenden kann, weil ich auch eine Build-Task haben, die alle JS-Dateien in meinem Inhalt nimmt/Skriptverzeichnis, minimiert sie und fügt dann .min in den Dateinamen ein.

Wenn Sie nicht über diesen Luxus haben, können Sie eine Variation wie so verwenden könnte:

Bonus
<%= Html.JavascriptTag("/Content/Scripts/jquery-1.3.2.js", "/Content/Scripts/jquery-1.3.2.min.js") %> 
<%= Html.JavascriptTag("/Content/Scripts/general.js", "/Content/Scripts/general.min.js") %> 

Ein weiterer oben von der Ansatz ist:

public static string JavascriptTag(this HtmlHelper html, string devFileName, string liveFileName) 
{ 
    var format = "<script src=\"{0}\" type=\"text/javascript\"></script>\r\n"; 

    var fileNameToUse = devFileName; 
#if (!DEBUG) 
    fileNameToUse = liveFileName; 
#endif 

    return string.Format(format, fileNameToUse); 
} 

, die wie genannt werden könnte dann dass Sie ein CDN für Bibliotheken verwenden können, z

<%= Html.JavascriptTag("/Content/Scripts/jquery-1.8.2.js", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js") %> 
Verwandte Themen