2014-12-13 3 views
0

Я новичок в grunt , и я хочу объединить файлы сценария java в один файл, используя grunt , и у меня есть 6 js-файлов, но они должны быть в некоторой последовательности для запуска кода без ошибки, как JQuery должны загружаться в первый но результат файл, который пришел из хрюкать не сохраняют эту последовательность я попробовал много вещей, которые хотели устроить их в ГКЗ или сделать более чем одну папку, но это не сработалоиспользуя grunt для CONCATENATE FILES в последовательности

примечание - когда я сделайте ручную конкатенацию в одном файле копией и вставьте ее отлично , так есть ли какая-либо команда, чтобы заставить grunt объединить эти файлы в secuquence, что я написал их в src в качестве примера это мой gruntfile.js слишком

module.exports = function(grunt) { 

    // 1. All configuration goes here 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 




    // 1 - this is contecnate js files call them in one file only 
    concat: { 
     options: { 
     separator: ';', 
     }, 
     dist: { 
     src: ['src/public/js/jquery.min.js','src/public/js/bootstrap.js','public/js/modernizr.custom.77555.js', 
      'public/js/jquery.magnific-popup.js', 
    'public/js/jquery.mixitup.min.js','public/js/popup-box.js' ], 
     dest: 'dist/1newbuilt.js', 
     }, 
    }, 



    uglify: { 
     build: { 
     src: 'dist/1newbuilt.js', 
     dest: 'dist/1newbuilt.min.js' 
     } 
    } 


    }); 

    // end 1 - this is contecnate js files call them in one file only 







    // 3. Where we tell Grunt we plan to use this plug-in. 
    grunt.loadNpmTasks('grunt-contrib-concat'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 

    // 4. Where we tell Grunt what to do when we type "grunt" into the terminal. 
    grunt.registerTask('default', ['concat', 'uglify']); 

}; 

мне нужны файлы, которые сцепляются в некоторых заказов, как первый добавить 1.js затем добавить 2.js после так я написал файлы в последовательности, но этот путь Бесполезный 't work too -

ответ

1

Если вы хотите продолжать использовать черновую-вно-CONCAT и вручную указать свои источники в явном виде, как у вас есть, он должен работать. В каком порядке вы видите модули? Вы удалили опцию uglify и просто использовали опцию concat? Эта конфигурация grunt корректно помещает комбинированные сценарии в порядок.

module.exports = function(grunt) { 
// 1. All configuration goes here 
    grunt.initConfig({ 




    // 1 - this is contecnate js files call them in one file only 
    concat: { 
     options: { 
     separator: ';', 
     }, 
     dist: { 
     src: ['a.js','b.js'], 
     dest: 'built.js', 
     }, 
    } 
    }); 

    // end 1 - this is contecnate js files call them in one file only 
// 3. Where we tell Grunt we plan to use this plug-in. 
    grunt.loadNpmTasks('grunt-contrib-concat'); 


    // 4. Where we tell Grunt what to do when we type "grunt" into the terminal. 
    grunt.registerTask('default', ['concat']); 

} 

это дает результат, как this-

(function(){ 
    console.log("module a"); 
})(); 
;(function(){ 
    console.log("module b"); 
})(); 

Кроме того, только ради стилей, я не вижу необходимости в сепараторе с запятой. Другая часть не-запрошены совет, если вам действительно нужно, чтобы указать порядок зависимости в файлах JS, вы должны перейти к использованию модуля загрузчика как RequireJS, Browserify или ES6 Modules (с transpiler какой-то)

+0

спасибо за ваш комментарий и код snippet после рассмотрения его, я обнаружил, что там ошибка, когда я вызываю файлы сценариев java в двух файлах, начинается с src/pu .., что совсем необязательно, и после этого напишите правильно src, поэтому я не обнаружил, что файл результатов не завершен @ thebringking – ramyMorad

0

вам не нужно писать все ваши JS-файлы. Просто используйте шаблон.

concat: { 
     js: { 
     src: 'src/public/js/*.js', 
     dest: 'dest/js/concat.js' 
     }, 

Ваша задача мин

min: { 
     js: { 
     src: 'dest/js/concat.js', 
     dest: 'dest/js/concat.min.js' 
     } 
    }, 
+0

я нужен файлы, которые будут конкатенированы в некоторых порядках, например, сначала добавьте 1.js, затем добавьте 2.js после него, чтобы я написал их последовательно, но этот способ тоже не работал для меня – ramyMorad

+0

grunt.loadNpmTasks ('grunt-contrib-concat'); Это сделает ваши заказы. просто используйте это расширение. – AngularLover

 Смежные вопросы

  • Нет связанных вопросов^_^