управление зависимостями для JS

0

В настоящее время я использую 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']);
    }
Теги:
gruntjs

1 ответ

0

Вы должны быть в состоянии сказать Grunt использовать только один файл JQuery в качестве цели для конкатенации, и тогда будет выбрано только это значение.

Я предполагаю, что у вас есть глобус в формате "bower_components/**/*. Js", вместо того чтобы делать этот конкретный глобус, вы должны просто сделать глобус, включающий только jquery. Помните, что файлы src также могут быть массивом, а не только строкой. Вы должны иметь возможность делать [bower_components/jquery/jquery.js ',' bower_components/path/to/other/lib.js '].

  • 0
    Могли бы вы уточнить, instead of doing that specific glob you should simply make a glob that includes just jquery как я могу это сделать. любой пример?
  • 0
    Мне нужно больше подробностей, в основном, как выглядит ваш файл, прежде чем я смогу сказать больше.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню