Я пытаюсь объединить файлы, а затем добавить их в Babelify и Uglify с помощью Grunt.
Я бы хотел прочитать список внешних файлов, из файла, в котором файлы записаны по одному для каждой строки, разделенные новой строкой.
Я пытаюсь использовать следующий файл GruntFile.js, но Грант говорит (после того, как я добавил строку src=['<%= jsFiles.toString().split("\n") %>']
):
Running "browserify:dist1" (browserify) task
Warning: An error occurred while processing a template (Invalid or unexpected token). Use --force to continue.
Где ошибка?
Это GruntFile.js
module.exports = function(grunt) {
grunt.initConfig({
jsFiles: grunt.file.read('scripts/s.list'),
env: {
prod: {
NODE_ENV: 'production'
}
},
browserify: {
dist1: {
options: {
transform: [
['babelify', {presets: ['es2015']}]
]
},
src: ['<%= jsFiles.toString().split("\n") %>'],
dest: '/WebContent/js/libs/s.bundle.js'
},
},
uglify: {
my_target1: {
files: {
'/WebContent/js/libs/s.bundleuglified.js': ['/WebContent/js/libs/s.bundle.js']
}
},
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-env');
grunt.registerTask('default', ['release']);
grunt.registerTask('release', ['env', 'browserify', 'uglify']);
};
Редактировать : Я добавил обратную косую черту к \ n, и ошибка исчезла, но задача babelify дает мне пустой файл ...
Edit2 : я смог прочитать список файлов, используя следующие две строки в начале GruntFile.js
const jsFiles = grunt.file.read('scripts/s.list');
const jsFilesArray = jsFiles.toString().split("\n");
, а затем
src: jsFilesArray.slice(0, jsFilesArray.length-1),
потому что последний элемент был '', и он выдал ошибку Внимание: должен предоставить шаблон ”, как предложил Бениамин Н.
Edit3 : Я обнаружил, что задача babelify считывает файлы в алфавитном порядке, поэтому мне пришлось сначала объединить их, как объяснено здесь , а затем babelify и uglify