grunt-wiredep

grunt wiredep - cómo controlar cómo wiredep genera una ruta de archivo de bower y cómo controlar qué archivos se agregan o eliminan



grunt-wiredep (3)

¿Has intentado agregar cwd al bloque de options ?

Ex:

// Automatically inject Bower components into the app wiredep: { options: { cwd: ''app/appName'' } .... }

Mi aplicación tiene el siguiente directorio

app -> appName -> index.html (js, css)

y por alguna razón, esta carpeta envoltura appName está estropeando wiredire

{ dest: ''.tmp/concat/scripts/vendor.js'', src: [ ''../bower_components/es5-shim/es5-shim.js'', ''../bower_components/angular/angular.js'', ''../bower_components/json3/lib/json3.js'', ''../bower_components/angular-resource/angular-resource.js'', ''../bower_components/angular-cookies/angular-cookies.js'', ''../bower_components/angular-sanitize/angular-sanitize.js'', ''../bower_components/angular-animate/angular-animate.js'', ''../bower_components/angular-touch/angular-touch.js'', ''../bower_components/angular-route/angular-route.js'' ] },

esto es lo que se habría producido si el directorio es el siguiente

aplicación -> index.html (js, css)

{ dest: ''.tmp/concat/scripts/vendor.js'', src: [ ''bower_components/es5-shim/es5-shim.js'', ''bower_components/angular/angular.js'', ''bower_components/json3/lib/json3.js'', ''bower_components/angular-resource/angular-resource.js'', ''bower_components/angular-cookies/angular-cookies.js'', ''bower_components/angular-sanitize/angular-sanitize.js'', ''bower_components/angular-animate/angular-animate.js'', ''bower_components/angular-touch/angular-touch.js'', ''bower_components/angular-route/angular-route.js'' ] },

y wiredep cambia el contenido del script de index.html y ¿cómo puedo controlar ese flujo? a veces se está eliminando el saneamiento angular de su guión [src]


Deberías usar la opción de reemplazo de wiredep:

wiredep( { fileTypes: { html: { replace: { js: ''<script src="/app/appName/{{filePath}}"></script>'' } } } })

Generará:

<script src="/app/appName/bower_components/angular/angular.js"></script>


Esta es mi configuración truculenta (el mismo principio se aplica a Grunt, solo hay que pasarle las mismas opciones).

gulp.task(''wiredep'' , function() { return gulp.src(''./app/index.html'') .pipe(wiredep({ ''ignorePath'': ''../'' })) .pipe(gulp.dest(''./app'')); });

Puede consultar el código fuente de wiredep en lib / inject-dependencies.js (línea: 80 ~ 85)

map(function (filePath) { return $.path.join( $.path.relative($.path.dirname(file), $.path.dirname(filePath)), $.path.basename(filePath) ).replace(////g, ''/'').replace(ignorePath, ''''); }).

Simplemente reemplaza la broca que suministras (o no si no le das una).

Espero que ayude.