我是Gulp的新手,我有吞咽的问题,这里有一些我想要完成的事情我想查找具有.storyboard扩展名的文件(它已经完成了)我想表演……
这是解决此问题的解决方案,您可以在单个文件上观察更改,也可以在更改文件时执行某种功能。在xml的情况下,您可以查看文件,当它更改时您可以添加新的属性或属性,或者您可以在xml文件中创建新元素。
//Dependencies //fs to read and write files while path is for iterating directories var fs = require('fs'), path = require('path'), DOMParser = new (require('xmldom')).DOMParser({ normalizeTags: { default: false } }), gulp = require('gulp'), arrayOfControls = require('./object.json'), RandExp = require('randexp'); console.log("GulpService has been Started\n"); function crawl(dir) { var files = fs.readdirSync(dir); for (var file in files) { var next = path.join(dir, files[file]); //iterate through files to check whether next is a file or direcory if (fs.lstatSync(next).isDirectory()) { //if its a directory dive into it crawl(next); } else if (next.indexOf('.storyboard') >= 0) { //if its a file just check it whether it is a .storyboard file or not mainStoryBoardFile = next; mainStoryBoardFile = mainStoryBoardFile.replace(/\\/g, "/"); } } } //calling function crawl(__dirname); var mainStoryBoardFile; var document, dataFound; function readWrite() { crawl(__dirname); dataFound = fs.readFileSync(mainStoryBoardFile, "utf-8"); document = DOMParser.parseFromString( dataFound.toString() ); fs.writeFileSync(mainStoryBoardFile, '', function () { console.log('done') }); fs.writeFileSync(mainStoryBoardFile, document, (err) => { if (err) throw err; console.log('The file has been saved!'); }); } var watcher = gulp.watch(mainStoryBoardFile); watcher.on('change', function (path, stats) { readWrite(); console.log('File ' + path + ' was changed'); watcher.unwatch(mainStoryBoardFile); watcher.add(mainStoryBoardFile); });