Desidero adattare un gulpfile.js e cambiare la cartella bower_components/
a app/bower_components/
.Dipendenze Gulp, Wiredep e Bower
ho aggiornato la directory in .bowerrc
, così ora ogni volta che faccio un bower install
userà quella giusta:
{
"directory": "app/bower_components"
}
Ora, come si può gulp-wiredep
scrivere la corretta posizione del percorso Sass all'interno del file il mio principale Sass?
Per esempio, gulp-wiredep
aggiunge la seguente riga nel mio file main.scss
, subito dopo // bower:scss
:
@import "bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss";
Dovrebbe essere ormai @import "app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss";
Come posso cambiare questa strada? Credo che sia un po 'di configurazione sul compito 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'));
});
Ma io non so come posso configurare che per fare quello che mi serve, non riuscivo a trovare alcuna documentazione al riguardo.
so che se cambio manuale che percorso nel mio file sass al "app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss"
, il gulp serve
funzionerà, ma non appena si installa un componente di pergolato che cambierà il percorso per l'una senza l'app/
all'inizio di nuovo e romperà il compito.
Come risolvere quello?
Fatto:
// 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'));
});
L'ho provato ma non funziona. Dice nella documentazione che usa la directory '.bowerrc' di default, quindi non sarebbe comunque necessario, giusto? – zok
Ho anche provato a cambiare 'cwd', ma a quanto pare è dove wiredep cercherà' bower.json' – zok
Sembra funzionare per me, anche se devi aggiungere l'opzione directory all'attività in cui esegui il flusso 'app/styles/* .scss', non a quello html come mostrato nella mia risposta. Se elimini la vecchia cartella bower_components e la rete fissa continua a cercare lì, allora l'attività dovrebbe fallire con wiredep lamentando che non può trovare alcuna dipendenza. In ogni caso, è possibile utilizzare l'override di sostituzione, ma è necessario specificarlo in modo diverso. Vedi mu aggiornare questa risposta. – knutwalker