मैं एक gulpfile.js को अनुकूलित करना चाहता हूं और bower_components/
फ़ोल्डर को app/bower_components/
में बदलना चाहता हूं।गुलप, वायर्डेप और बॉवर निर्भरता
मैं .bowerrc
में निर्देशिका अद्यतन है, इसलिए अब हर मैं करना एक bower install
यह सही एक का उपयोग करेगा:
{
"directory": "app/bower_components"
}
अब, कैसे gulp-wiredep
अंदर अपने मुख्य सास फ़ाइल सही सास पथ स्थान लिख सकते हैं?
उदाहरण के लिए, gulp-wiredep
निम्न पंक्ति मेरी main.scss
फ़ाइल में, सही // bower:scss
के बाद कहते हैं:
@import "bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss";
यह होना चाहिए अब @import "app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss";
कैसे मुझे लगता है कि पथ बदल सकते हैं? मेरा मानना है कि यह wiredep
कार्य पर कुछ विन्यास है:
gulp.task('wiredep', function() {
var wiredep = require('wiredep').stream;
gulp.src('app/styles/*.scss')
.pipe(wiredep({
ignorePath: /^(\.\.\/)+/
}))
.pipe(gulp.dest('app/styles'));
gulp.src('app/*.html')
.pipe(wiredep({
exclude: ['bootstrap-sass-official'],
ignorePath: /^(\.\.\/)*\.\./
}))
.pipe(gulp.dest('app'));
});
लेकिन मैं नहीं जानता कि मैं यह कैसे कॉन्फ़िगर मैं क्या जरूरत है ऐसा करने के लिए कर सकते हैं, मुझे लगता है कि इस बारे में कोई प्रलेखन नहीं मिल सका।
मुझे पता है कि अगर मैं "app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss"
करने के लिए मेरी सास फ़ाइल में मैन्युअल रूप से उस मार्ग बदलने के लिए, gulp serve
काम करेंगे, लेकिन जैसे ही मैं एक बोवर घटक स्थापित इसे फिर से शुरू और कम से app/
बिना एक के लिए उस मार्ग बदल जाएगा यह कार्य तोड़ देगा।
इसे कैसे ठीक करें?
डन:
// inject bower components
gulp.task('wiredep', function() {
var wiredep = require('wiredep').stream;
gulp.src('app/styles/*.scss')
.pipe(wiredep({
fileTypes: {
scss: {
replace: {
sass: '@import "app/{{filePath}}";',
scss: '@import "app/{{filePath}}";'
}
}
},
ignorePath: /^(\.\.\/)+/
}))
.pipe(gulp.dest('app/styles'));
gulp.src('app/*.html')
.pipe(wiredep({
exclude: ['bootstrap-sass-official'],
ignorePath: /^(\.\.\/)*\.\./
}))
.pipe(gulp.dest('app'));
});
मैंने कोशिश की लेकिन यह काम नहीं करता है। यह प्रलेखन में कहता है कि यह डिफ़ॉल्ट '.bowerrc' निर्देशिका का उपयोग करता है, तो यह वैसे भी अनावश्यक होगा, है ना? – zok
मैंने 'cwd' को बदलने का भी प्रयास किया, लेकिन स्पष्ट रूप से वह जगह है जहां वायर्डप' bower.json' – zok
'की खोज करेगा, यह मेरे लिए काम करता है, हालांकि आपको उस कार्य में निर्देशिका विकल्प जोड़ना है जहां आप' ऐप/शैलियों/.scss', मेरे उत्तर में दिखाए गए HTML को नहीं। यदि आप पुराने bower_components फ़ोल्डर को हटाते हैं और वायर्डेप अभी भी वहां खोज करता है, तो कार्य को वायर्डेप के साथ विफल होना चाहिए कि शिकायत यह है कि उसे कोई निर्भरता नहीं मिल सकती है। वैसे भी, आप प्रतिस्थापित ओवरराइड का उपयोग कर सकते हैं, लेकिन आपको इसे अलग-अलग निर्दिष्ट करना होगा। Mu इस उत्तर को अद्यतन करें देखें। – knutwalker