গ্রান্ট-অবদান-অনুলিপিতে "সম্প্রসারণ" বিকল্পটি কী করবে? উদাহরণগুলি সমস্ত এটি ব্যবহার করে তবে ডক্স এটি কী করে সে সম্পর্কে কিছুই বলে না


100
  1. এখানে README এবং উদাহরণগুলি: https://github.com/gruntjs/grunt-contrib-copy/blob/master/README.md
  2. এখানে কোড (যে আমি দৃশ্যত বুঝতে পারছি না) থেকে প্রাসঙ্গিক অংশ https://github.com/gruntjs/grunt-contrib-copy/blob/master/tasks/copy.js :
মডিউল.এক্সপোর্টস = ফাংশন (গ্রান্ট) {
  'কঠোর ব্যবহার';

  var পাথ = প্রয়োজন ('পথ');

  grunt.registerMલ્ટTask ('কপি', 'ফাইল অনুলিপি করুন।', ফাংশন ()
    var kindOf = grunt.util.kindOf;

    var অপশন = this.options ({
      প্রক্রিয়া কনটেন্ট: মিথ্যা,
      প্রসেসকন্টেন্টএক্সকল: []
    });

    var copyOptions = {
      প্রক্রিয়া: অপশনস.প্রসেস কনটেন্ট,
      নোপ্রসেস: অপশনস.প্রসেসকন্টেন্টএক্সক্লুড
    };

    grunt.verbose.writeflags (বিকল্প, 'বিকল্প');

    var dest;
    var isExandedPair;
    var ট্যালি = {
      ডায়ার্স: 0,
      ফাইল: 0
    };

    this.files.forEach (ফাংশন (ফাইল পেয়ার) {
      isExpandedPair = filePair.orig.expand || মিথ্যা

      filePair.src.forEach (ফাংশন (src) {
        যদি (সনাক্তকরণডেস্টটাইপ (filePair.dest) === 'ডিরেক্টরি')
          গন্তব্য = (ইজ এক্সপেন্ডেড পেয়ার)? filePair.dest: unixifyPath (path.join (filePair.dest, src));
        } অন্য {
          গন্তব্য = filePair.dest;
        }

        যদি (grunt.file.isDir (src)) {
          grunt.verbose.writeln ('ক্রিয়েটিং' + ডেসটিন.সিয়ান);
          grunt.file.mkdir (গন্তব্য);
          ট্যালি.ডিয়ার্স ++;
        } অন্য {
          grunt.verbose.writeln ('অনুলিপি' + src.cyan + '->' + ভাগ্য .cyan);
          grunt.file.copy (src, dest, copyOptions);
          ট্যালি.ফাইলস ++;
        }
      });
    });

আপনি কি জানেন যে গৃহীত উত্তরটি ভুল? দেখুন নিচের এই উত্তর
ডেভিড পর্সন

উত্তর:


59

প্রসারিত আপনাকে গন্তব্য পথটি পুরোপুরি তৈরি করতে চান কিনা তা নির্দিষ্ট করতে দেয় (উদা: /path/missing1/missing2:), বা তার পিতামাতার উপস্থিতি কেবলমাত্র সর্বশেষ ডিরেক্টরি তৈরি করতে হবে ( /path/existing/missing)।


4
আহ, সুতরাং এটি কার্যকরভাবে এম কেডিরের -p বিকল্প। বুঝেছি ধন্যবাদ!
প্যাট্রিক

6
এই উত্তরটি সঠিক নয়। এটি সেরা সরলীকৃত হয়।
ডেভিড পারসন

4
-1। এটি বিভ্রান্তিকর - এই উত্তরের উপর ভিত্তি করে আমি সরিয়েছি expand: true, এটির দরকার নেই যে আমার এটির দরকার নেই এবং তারপরে আমার বিল্ড কাজ করা বন্ধ করে দিয়েছে।
ক্লাদিউ

82

যেহেতু expandগ্রান্টের একটি অংশ, এবং গ্রান্ট-অবদান-অনুলিপির জন্য সুনির্দিষ্ট নয়, তাই গ্রুন্টের ফাইল কনফিগারেশন এপিআইতে এটি সম্পর্কিত তথ্য পাওয়া যাবে :

নিম্নলিখিত বিকল্পগুলি সক্ষম expandকরতে সেট trueকরুন:

  • cwdসমস্ত srcম্যাচ এই পথের সাথে সম্পর্কিত (তবে অন্তর্ভুক্ত নয়)।
  • srcমেটাতে প্যাটার্ন (গুলি), এর সাথে সম্পর্কিত cwd
  • dest গন্তব্য পথ উপসর্গ।
  • extউত্পাদিত destপাথগুলিতে এই মান সহ যে কোনও বিদ্যমান এক্সটেনশন প্রতিস্থাপন করুন ।
  • extDotএক্সটেনশন নির্দেশক সময়টি কোথায় অবস্থিত তা নির্দেশ করতে ব্যবহৃত হয়। যে কোনওটি নিতে পারে 'first'(ফাইলের নামের প্রথম পর্বের পরে এক্সটেনশন শুরু হয় ) বা 'last'(এক্সটেনশন শেষ সময়ের পরে শুরু হয়) এবং ডিফল্ট হিসাবে সেট করা থাকে 'first'
  • flattenউত্পন্ন destপথ থেকে সমস্ত পাথ অংশগুলি সরান ।
  • renameএই ফাংশনটি প্রতিটি মিলিত srcফাইলের জন্য ডেকে আনা হয় (এক্সটেনশন নামকরণ এবং সমতলকরণের পরে)। destএবং মিলেছে srcপথ পাস করা হয়, এবং এই ফাংশন একটি নতুন ফিরে আসবে destমান। একইটি যদি destএকাধিকবার ফেরত দেওয়া হয়, তবে srcএটি ব্যবহার করা প্রতিটি এটির জন্য উত্সের একটি অ্যারেতে যুক্ত হবে।

অতিরিক্ত হিসাবে মনে হচ্ছে destসেট expandকরা থাকলে সর্বদা একটি গন্তব্য ডিরেক্টরি হিসাবে বিবেচিত হবে true


ভাল উত্তর। তবে এটি কি কোথাও নথিভুক্ত নয়?
সিওনিপ

আমি দ্বিতীয় বার দেখার পরে ডকুমেন্টেশনটি সত্যই পেয়েছি এবং সেই অনুসারে আমি আমার উত্তর আপডেট করেছি।
ডেভিড পারসন

আমি ডকটিতে প্রদত্ত দরকারী উদাহরণ যুক্ত করেছি। এটি এখন আরও পরিষ্কার।
রামি বেকেরাস 21
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.