node.js - nodejs - javascript grunt
Obteniendo el mensaje de error "No" concat "objetivos encontrados" cuando se ejecuta grunt-usemin (2)
Demasiado tarde, pero en caso de que sea útil para otra persona: creo que useminprepare generará automáticamente una configuración de concat y la transmitirá al runner de la tarea gruñona, por lo que las respuestas anteriores no son del todo exactas, diría yo.
Intentaría revisar los bloques de compilación en src / index.html y comprobar que las rutas apuntan correctamente a los recursos que useminPrepare se concatenarán. Estoy luchando ahora con un problema como este: S
Referencia aquí: https://github.com/yeoman/grunt-usemin
Mi archivo gruñido se muestra a continuación:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON(''package.json''),
uglify: {
options: {
banner: ''/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> *//n''
},
build: {
src: ''src/**/*.js'',
dest: ''dist/<%= pkg.name %>.min.js''
}
},
watch: {
js: {
files: [''src/**/*.js''],
options: {
livereload: ''<%= connect.options.livereload %>''
}
},
livereload: {
options: {
livereload: ''<%= connect.options.livereload %>''
},
files: [
''src/**/*.html'',
''src/**/*.css'',
''src/assets/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}''
]
}
},
connect: {
options: {
port: 9000,
livereload: 35729,
hostname: ''localhost''
},
livereload: {
options: {
open: true,
// base: [
// ''.tmp'',
// ''''
// ]
middleware: function(connect) {
return [
connect.static(''.tmp''),
connect().use(
''/bower_components'',
connect.static(''./bower_components'')
),
connect().use(
''/app/styles'',
connect.static(''./app/styles'')
),
connect.static(''src'')
];
}
}
}
},
copy: {
app: {
cwd: ''src'', // set working folder / root to copy
src: ''**/*.html'', // copy all files and subfolders
dest: ''dist/'', // destination folder
expand: true
},
assets: {
cwd: ''src'', // set working folder / root to copy
src: ''assets/*'', // copy all files and subfolders
dest: ''dist/'', // destination folder
expand: true
}
},
useminPrepare: {
options: {
dest: ''dist''
},
html: ''src/index.html''
},
usemin: {
html: [''dist/index.html'']
}
});
// Load the plugin that provides the "uglify" task.
// grunt.loadNpmTasks(''grunt-contrib-uglify'');
grunt.loadNpmTasks(''grunt-contrib-connect'');
grunt.loadNpmTasks(''grunt-contrib-watch'');
grunt.loadNpmTasks(''grunt-contrib-uglify'');
grunt.loadNpmTasks(''grunt-contrib-copy'');
grunt.loadNpmTasks(''grunt-contrib-concat'');
grunt.loadNpmTasks(''grunt-usemin'');
// Default task(s).
grunt.registerTask(''default'', [''useminPrepare'', ''copy'', ''concat'', ''uglify'', ''usemin'']);
grunt.registerTask(''serve'', function(target) {
grunt.task.run([
''connect:livereload'',
''watch''
]);
});
};
cuando ejecuto ronco el mensaje de error como "No" concat "objetivos encontrados". He intentado durante 2 horas resolver este problema, pero ningún resultado me ayudó a encontrar la solución.
Use el siguiente proceso para depurar:
Ejecute el proyecto de muestra
Especifique un directorio de ubicación de almacenamiento
temp
(temp
ostaging
)Antes de ejecutar
usemin
, asegúrese de que el directorio detemp
ostaging
no esté vacíoSi está vacío, ejecute una tarea de
grunt copy
ronca que tenga el directoriotemp
ostaging
establecido como el parámetrodest
La principal diferencia a tener en cuenta, con respecto a directorios y tareas, es que para
useminPrepare
, los directorios necesitan indicar la ruta de entrada, transitoria y de salida necesaria para generar la configuración correcta para el pipeline de procesadores, mientras que en el caso deusemin
solo refleja las rutas de salida, ya que todos los activos necesarios deberían haber sido enviados al directorio de destino (ya sea transformado o simplemente copiado).
Referencias