6

एएसपी.नेट 5 के साथ, मैं अपने क्लाइंट-साइड पैकेज प्रबंधन और बंडलिंग/मिलिफिकेशन के लिए एएसपी.नेट एमवीसी की बंडलिंग सिस्टम से बोवर/ग्रंट वर्कफ़्लो में जा रहा हूं। मैं यह समझने की कोशिश कर रहा हूं कि एमवीसी बंडलिंग कार्यक्षमता को बारीकी से कैसे दोहराना है।एएसपी.नेट एमवीसी बंडलिंग से ग्रंट/बॉवर में माइग्रेटिंग?

एमवीसी बंडलिंग के साथ, मैंने मैन्युअल रूप से अपने सभी बंडलों को बनाया और फिर एक सहायक विधि पर कॉल करें जैसे: @Styles.Render("~/bundles/styles/site")। विकास में मुझे बंडल में प्रत्येक सीएसएस फ़ाइल के लिए अलग लिंक तत्व मिलता है और उत्पादन में मुझे एक संयुक्त और छोटा सीएसएस फ़ाइल मिलती है।

मैंने पैकेज को खींचने के लिए बोवर के साथ सफलतापूर्वक गंट स्थापित किया है और उन्हें उचित अंतिम गंतव्य में कॉपी किया है, लेकिन विकास और उत्पादन के बीच कोई अंतर नहीं है। मेरे मौजूदा एमवीसी बंडल वर्कफ़्लो के निकटतम कार्यक्षमता क्या है?

+0

आप के बारे में बनाता है चिंता करने की ज़रूरत है? तैनाती के बारे में क्या? क्या आप वेब डिप्लॉयमेंट का उपयोग करते हैं या आप संकलित फाइलों की प्रतिलिपि बनाते हैं? – Slick86

+0

अच्छा सवाल। निर्माण के लिए मैं TeamCity का उपयोग करता हूं और फिर OctopusDeploy के साथ तैनाती करता हूं। यह सब स्वचालित है और वर्तमान में काफी अच्छी तरह से काम करता है। –

+0

एमवीसी बंडलिंग की एक नई विधि लागू नहीं की गई है लेकिन योजना बनाई गई है: https://github.com/aspnet/Mvc/issues/2024 –

उत्तर

0

मैं जिस तरह से Yeoman कोणीय जनरेटर में संपत्ति संभालती है की एक बहुत बड़ा प्रशंसक हूँ। यह स्वचालित रूप से आपके index.html में बोवर पैकेज को शामिल करने के लिए वायर्डेप का उपयोग करता है। Usemin का उपयोग उन फ़ाइलों को समूहित करने के लिए किया जाता है जिन्हें आप बंडलों में चाहते हैं और Filerev संपत्ति स्थानों को अपडेट करता है और कैश ब्रेकर जोड़ता है। मेरे पास कुछ गंट सेटिंग्स का नमूना है।

wiredep: { 
    app: { 
    src: ['<%= yeoman.app %>/index.html'], 
    exclude: ['bootstrap.css'], 
    fileTypes: { 
     html: { 
     replace: { 
      js: '<script src="/{{filePath}}"></script>', 
      css: '<link rel="stylesheet" href="/{{filePath}}" />' 
     } 
     } 
    }, 
    ignorePath: /\.\.\// 

    } 
}, 

// Renames files for browser caching purposes 
filerev: { 
    dist: { 
    src: [ 
     '<%= yeoman.dist %>/scripts/{,*/}*.js', 
     '<%= yeoman.dist %>/styles/{,*/}*.css', 
     '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', 
     '<%= yeoman.dist %>/styles/fonts/*' 
    ] 
    } 
}, 

// Reads HTML for usemin blocks to enable smart builds that automatically 
// concat, minify and revision files. Creates configurations in memory so 
// additional tasks can operate on them 
useminPrepare: { 
    html: '<%= yeoman.app %>/index.html', 
    options: { 
    dest: '<%= yeoman.dist %>', 
    flow: { 
     html: { 
     steps: { 
      js: ['concat', 'uglifyjs'], 
      css: ['cssmin'] 
     }, 
     post: {} 
     } 
    } 
    } 
}, 

// Performs rewrites based on filerev and the useminPrepare configuration 
usemin: { 
    html: ['<%= yeoman.dist %>/**/*.html'], 
    css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], 
    options: { 
    assetsDirs: ['<%= yeoman.dist %>', '<%= yeoman.dist %>/images'], 
    patterns: { 
     js: [ 
     [/templateUrl:"(templates[/A-Za-z0-9]*\.html)"/] 
     ] 
    } 
    } 
}, 

प्रासंगिक NPM संकुल grunt-wiredep, grunt-filerev, और grunt-usemin

हैं आप एक घुरघुराना निर्माण प्रक्रिया MSBuild बाद भी आपके बिन फ़ोल्डर में फ़ाइलें लेता है और उन पर इन घुरघुराना कार्य चलाता जोड़ने की आवश्यकता होगी।

1

नीचे इस लेख के लिए दोनों (बोवर और .NET बंडल कॉन्फ़िग) एक साथ अच्छी तरह से खेल रहे हैं एक बहुत ही अच्छा तरीका समझाने ...

http://robertnoack.com/x86/2014/07/asp-net-mvc-using-bowergruntwiredep-to-inject-javascript-dependencies-into-bundleconfig-cs/

मुख्य जानकारी, एक ग्रंट कार्य (wiredep उपयोग करने के लिए है) BundleConfig.cs फ़ाइल को लक्षित करने के लिए ताकि आप अभी भी अपनी निर्भरताओं को प्रबंधित करने के लिए बोवर का उपयोग कर सकें और अभी भी .NET को आपके लिए अपनी सामग्री को कम करने के लिए BundleConfig का उपयोग कर सकें।

1

दर्द के एक दिन बाद, मुझे मूल रूप से डीबग & रिलीज बिल्ड के साथ asp.net minification के रूप में व्यवहार करना शुरू हो गया है।

मैंने एक गिट रेपो एक साथ रखा है ताकि आप सभी प्रासंगिक फाइलों और आवश्यकतानुसार मॉड खींच सकें।

https://github.com/glaidler/grunt-equivalent-asp.net-minification

संबंधित मुद्दे