2016-11-14 4 views
5

मैं निर्देशिका wwwroot कहा जाता है में मेरी index.html है और यह locahost पर ब्राउज़र से पहुँचा जा रहा है: 5001। व्हील एनआई ने एनपीएम का उपयोग करके कुछ पैकेज स्थापित किए, निर्देशिका node_modules को wwwroot के समान स्तर पर रखा गया था।क्या फाइलों को स्वचालित रूप से wwwroot पर कॉपी करने का कोई तरीका है?

जब मैं फ़ाइलों से लिंक कर रहा हूं, तो मैं इस तरह के सापेक्ष पथ का उपयोग करता हूं।

href = "../ node_modules/package_this_or_that/package.min.js"

मुझे ऐसा लगता है कि एक बेहतर दृष्टिकोण उन wwwroot निर्देशिका के लिए दिया और राशि है करने के लिए किया जाएगा वे वहां रहते हैं। संकुल की सभी सामग्री नहीं, केवल उन फ़ाइलों को जो वास्तव में उपयोग किया जा रहा है (रीडम्स आदि छोड़ना)।

क्या इसके लिए कोई पैकेज है? या यह ऐसा कुछ है जिसे बिल्ड स्क्रिप्ट का उपयोग करके किया जाना चाहिए?

+0

[एएसपी .NET 5 का संभावित डुप्लिकेट - नोड मॉड्यूल से wwwroot तक फ़ाइलों की प्रतिलिपि बनाने के लिए गड़बड़ाना कार्य] (http://stackoverflow.com/questions/34455513/asp-net-5-grunt-task-to-copy- फाइल-टू-नोड-मॉड्यूल-टू-wwwroot) – Tseng

उत्तर

3

आपको अपने एचटीएमएल या सीएसटीएमएल फाइलों जैसे फ्रंट-एंड से नोड_मोड्यूल फाइलों तक पहुंच नहीं लेनी चाहिए। तो आप सही हैं आपको उन्हें wwwroot फ़ोल्डर में कॉपी करना चाहिए।

आप grunt का उपयोग Tseng comment में लिंक के रूप में कर सकते हैं लेकिन मैं व्यक्तिगत रूप से Gulp पसंद करता हूं, मुझे लगता है कि यह उपयोग करने में बहुत तेज़ और आसान है।

आपका package.json फ़ाइल:

{ 
    "version": "1.0.0", 
    "name": "asp.net", 
    "private": true, 
    "devDependencies": { 
     "gulp": "3.9.1", 
     "gulp-cached": "1.1.0", 
    } 
} 

तो अपनी परियोजना के रूट स्तर पर एक gulpfile.js बना सकते हैं और आप की तरह

var gulp = require('gulp'), 
cache = require('gulp-cached'); //If cached version identical to current file then it doesn't pass it downstream so this file won't be copied 

gulp.task('default', 'copy-node_modules'); 

gulp.task('copy-node_modules', function() { 

try { 

    gulp.src('node_modules/**') 
     .pipe(cache('node_modules')) 
     .pipe(gulp.dest('wwwroot/node_modules')); 
    } 
    catch (e) { 
     return -1; 
    } 
    return 0; 
}); 

अंत में कुछ लिख सकते हैं खोलने Task Runner Explorer (यदि आप दृश्य स्टूडियो का उपयोग कर रहे हैं) और या तो अपने default कार्य या सीधे copy-node_modules कार्य निष्पादित करें।

गुलप बहुत उपयोगी है, मेरा सुझाव है कि आप अन्य विभिन्न गल्प कार्यों का पता लगाएं। आप सीएसएस और जेएस दोनों फाइलों को संक्षिप्त और संक्षिप्त कर सकते हैं, टिप्पणियां हटा सकते हैं, आप watch कार्य भी बना सकते हैं जो फ़ाइल परिवर्तनों के तुरंत बाद अन्य कार्यों को निष्पादित करता है।

+0

जब तक मेरे शिकारी सटीक प्रतीत होते हैं, मेरे पास कॉपी प्रक्रिया से संबंधित एक और सवाल है। आपके उदाहरण में, आप बस सभी सीएसएस और जेएस फाइलों पर प्रतिलिपि बनाएँ। हालांकि, मैंने देखा कि पैकेज की संरचना खुद को संकलित परियोजनाओं की तरह दिखती है। क्या मुझे शायद, गुलप लाने का उपयोग करके उन्हें किसी भी तरह निष्पादित करना चाहिए ** केवल प्रासंगिक ** लेकिन ** सभी प्रासंगिक ** कलाकृतियों? मैं सोच रहा हूं कि कुछ पैकेजों में फोंट, छवियां इत्यादि हो सकती हैं (जो आपके उदाहरण से ढकी नहीं है) और केवल minified फ़ाइलों को कॉपी करने की आवश्यकता है। उदाहरण के लिए * dist * नामक एक निर्देशिका है ... –

+0

हां बेशक आप सभी 'node_modules' फ़ोल्डर की प्रतिलिपि बना सकते हैं, मुझे लगता है कि यह' gulp.src ('node_modules /') 'जैसा होगा, लेकिन आपको अपना खुद का बनाना चाहिए इसके बजाय नियम। उदाहरण के लिए कुछ मॉड्यूल में 'test' या' example' फ़ोल्डर्स होते हैं, इसलिए आपको अपने wwwroot में इसकी आवश्यकता नहीं होती है। मेरे उदाहरण के लिए मैंने अपनी खुद की गल्प फ़ाइल ली और इसे एक उदाहरण देने के लिए इसे संशोधित किया।(मैंने मैन्युअल रूप से केवल एक ही मॉड्यूल की प्रतिलिपि बनाई जो मुझे wwwroot की आवश्यकता है जो मुझे याद दिलाता है कि मुझे वास्तव में इसे बदलना चाहिए और इसे आपके जैसा स्वचालित करना चाहिए ...)। 'dist' में मिनीडिल्ड फाइलों के साथ उत्पादन संस्करण शामिल है लेकिन सभी मॉड्यूल में यह –

+0

है, मैंने उत्तर के कोड नमूना को अपडेट किया है। यह सब कुछ आपके wwwroot पर कॉपी करेगा। मैं इसके साथ बहुत उन्नत नहीं हूं, मैंने अभी बहुत पहले आधार नहीं सीखा है, लेकिन ईमानदारी से मुझे लगता है कि आपको सबकुछ की आवश्यकता नहीं है, बेकार चीज़ों के साथ अपने wwwroot को प्रदूषित न करें। मुझे लगता है कि आपको केवल उन मॉड्यूल की प्रतिलिपि बनाना चाहिए जिन्हें आप वास्तव में उपयोग करते हैं। (पहली बार जब आप सबकुछ कॉपी करते हैं तो विजुअल स्टूडियो क्रैश के लिए तैयार रहें) –

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

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