Được rồi Tôi đã bị mắc kẹt trong 2 tuần này, vì vậy hy vọng một người khác ở đây đã chạy qua vấn đề này. Tôi đang cố gắng sử dụng Grunt để sao chép chỉ các tập tin đã thay đổi. Tôi đã nhìn thấy rất nhiều ví dụ về cách làm điều này với JSLINT và UGLIFY nhưng không có ví dụ cụ thể về cách làm điều này với grunt-contrib-copy.Grunt Watch Event với Grunt Copy for Only Changed Files
Khi bạn đăng ký một sự kiện đồng hồ và chuyển tên tệp vào phụ đề sao chép, tên tệp có thể truy cập được (tôi đang đăng xuất), nhưng tệp không bao giờ sao chép đúng cách.
Tôi hy vọng một điều đơn giản mà tôi đang xem. Ai đó có thể vui lòng xem mã của tôi và xem tôi đang làm gì sai?
//Gruntfile.js:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
options: {
base: 'app',
dist: 'dist',
},
copy: {
changedFiles: {
expand: true,
dot: true,
cwd: '<%= options.base %>',
src: ['**/*.*'],
dest: '<%= options.dist %>/'
}
},
watch: {
options: {
nospawn: true,
//debounceDelay: 1000,
},
css: {
files: ['app/css/*.css',
'app/js/*.js'
],
tasks: ['copy:changedFiles'],
}
}
});
grunt.event.on('watch', function(action, filepath, target){
grunt.log.writeln('target: ', target + '\n filepath: ' + filepath + '\n action: has ' + action);
grunt.config('copy.changedFiles.src', new Array(filepath));
});
//load our copy task
grunt.loadNpmTasks('grunt-contrib-copy');
//load our watch task
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('copyChangedFiles', [
'watch:css'
]);
};
Về cơ bản thiết lập thư mục của tôi là như vậy:
-app
| - css
| - js
-dist
Tôi đang xem các thư mục ứng dụng và cố gắng để sao chép các tập tin thay đổi trong thư mục ứng dụng và sao chép chúng vào thư mục dist. Tự động sửa đổi bản sao src dường như không hoạt động.
Tác vụ sao chép khi tự chạy với đồng hồ chứ không phải trên sự kiện đồng hồ chỉ hoạt động tốt và sao chép mọi tệp qua, nhưng tôi chỉ muốn sao chép các tệp thay đổi.
Tôi cũng đã thử một biến thể của sự kiện này trong vòng đồng hồ của tôi, không có kết quả:
var copyDest = filepath.replace(grunt.config('copy.changedFiles.dest'), '');
var copyCwd = filepath.replace(grunt.config('copy.changedFiles.cwd'), '');
grunt.config('copy.changedFiles.cwd' , copyCwd);
grunt.config(['copy', 'changedFiles', 'src'] , [filepath]);
Có ai làm bao giờ thành công này trước khi sử dụng bản sao grunt? Hoặc có một nhiệm vụ khác mà tôi nên sử dụng không? Tôi đã thử cùng với grunt-đồng bộ và điều đó dường như không hoạt động. Tôi bị kẹt.
Cảm ơn sự giúp đỡ.