В настоящее время я использую bower для управления зависимостями, который загружает все мои зависимости проекта с помощью одной команды. Теперь я также начал использовать Gruntjs. Теперь проблема в том, когда я хочу загрузить, например, зависимость jQuery с помощью bower, она загружает несколько других js файлов тоже в папку libs. Затем я использую grunt, чтобы минимизировать весь мой письменный JavaScript с помощью библиотеки jQuery, которая находится внутри папки libs. Теперь проблема заключается в том, что он также минимизирует и конкатенирует ненужные файлы внутри папки jquery, которые загружаются с помощью беседки.
Мой вопрос в том, что есть способ, чтобы баузер загружал только файл jquery.js или есть способ для grunt объединить только файлы jquery.js с остальной частью моего кода?
Если да, то как?
ОБНОВИТЬ
module.exports = function (grunt) {
grunt.initConfig({
jshint: {
options: {
jshintrc: '.jshintrc'
},
target: {
src: 'src/js/**/*.js'
}
},
csslint: {
options: {
csslintrc: '.csslintrc'
},
target: {
src: 'src/css/**/*.css'
}
},
copy: {
dist: {
cwd: 'src/', expand: true, src: '**', dest: 'dist/'
}
},
concat: {
options: {
// separator: ';'
},
target: {
src: ['dist/js/jquery.js', 'dist/js/**/*.js'], // make sure jquery is loaded first
dest: 'dist/js/compiled.js'
}
},
uglify: {
options: {
mangle: true,
compress: true,
banner: '/* Test banner */\n'
},
target: {
src: 'dist/js/compiled.js',
dest: 'dist/scripts/compiled.min.js'
}
},
uncss: {
dist: {
files: [
{ src: 'src/*.html', dest: 'dist/css/compiled.min.css' }
]
}
},
cssmin: {
options: {
// banner: '/* My minified css file */'
},
target: {
src: 'dist/css/*.css',
dest: 'dist/styles/compiled.min.css'
}
},
// Deletes all .js files, but skips min.js files
clean: ['dist/js/', 'dist/css/'],
processhtml: {
dist: {
files: {
'dist/index.html': ['src/index.html']
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-csslint');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-processhtml');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-uncss');
grunt.registerTask('default', ['jshint', 'uncss', 'csslint', 'copy', 'concat', 'uglify', 'cssmin', 'clean', 'processhtml']);
}
Вы должны быть в состоянии сказать Grunt использовать только один файл JQuery в качестве цели для конкатенации, и тогда будет выбрано только это значение.
Я предполагаю, что у вас есть глобус в формате "bower_components/**/*. Js", вместо того чтобы делать этот конкретный глобус, вы должны просто сделать глобус, включающий только jquery. Помните, что файлы src также могут быть массивом, а не только строкой. Вы должны иметь возможность делать [bower_components/jquery/jquery.js ',' bower_components/path/to/other/lib.js '].
instead of doing that specific glob you should simply make a glob that includes just jquery
как я могу это сделать. любой пример?