javascript - js 自動(dòng)根據(jù)配置文件生成目錄結(jié)構(gòu)
問題描述
目前在初始化組件庫(kù),為了靈活,需要一個(gè)快速的初始化目錄結(jié)構(gòu)。目前用的angular2目錄結(jié)構(gòu)的配置文件可能如下
+ grid - col - grid - row
這樣希望能夠生成grid.config.tsgrid.module.tsindex.tsSTATION.mdcol.component.ts,col.component.html,col.component.scss,grid.component.ts,...
自己也在github找了filemap跟baya,filemap測(cè)試了,已經(jīng)不能使用了,baya文件夾可以生成,文件不能生成
自己可能打算是把模板文件做成json,用gulp去讀,不過沒有tree樹這么直觀
有沒有大神有解決辦法的,或者對(duì)我的解決思路有建議的
問題解答
回答1:做了一個(gè)淺顯的版本,對(duì)于多層文件目錄的結(jié)構(gòu)還沒有考慮好,暫時(shí)還沒用遞歸
const gulp = require(’gulp’);const fs = require(’fs’);const path = require(’path’);const mkdirp = require(’mkdirp’);function writeFile(i) { if (!fs.existsSync(i)) { fs.writeFile(i, ’’, ’utf-8’); }}function pack(i) { return [’index.ts’, ’STATION.md’].concat(i + ’.config.ts’, i + ’.module.ts’);}function createList(path) { return [].concat(path + ’.component.ts’, path + ’.component.html’, path + ’.component.scss’)}function splitFlag(value, flag) { return value.split(flag)[1].replace(/s+/g, '');}gulp.task(’try’, function () { const paths = path.join(__dirname, './tempalte'); fs.readFile(paths, ’utf-8’, function (err, data) { if (err) throw err; const array = data.split(’n’); array.forEach(f![圖片描述][1]unction (i) { if (i.indexOf(’+’) > -1) {const folder = splitFlag(i, ’+’);mkdirp(folder);pack(folder).forEach(function (item) { writeFile(folder + ’/’ + item);}) } }); var parent; array.forEach(function (i) { if (i.indexOf(’+’) > -1) {parent = splitFlag(i, ’+’); } else {const pa = parent + ’/’ + splitFlag(i, ’-’);createList(pa).forEach(function (item) { writeFile(item);}) } }); });});

自己寫一個(gè) Node 輔助函數(shù),逐級(jí)讀取配置文件,生成需要的文件和文件夾就可以啦。就遞歸一下下。
回答3:自己用fs模塊寫一個(gè)嘛,不要偷懶
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. 實(shí)現(xiàn)bing搜索工具urlAPI提交3. boot2docker無法啟動(dòng)4. javascript - 移動(dòng)端上不能實(shí)現(xiàn)拖拽布局嗎?5. javascript - 如何判斷不同兩個(gè)對(duì)象觸發(fā)同一事件?6. 前端 - 這段代碼一直生效不了,查半天因?yàn)?top: 0px; 分號(hào)后一個(gè)隱藏的東西,也不是占位符...刪了就可以生效,這是什么情況。。7. nginx bind failed8. thinkPHP5中獲取數(shù)據(jù)庫(kù)數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺(tái)消失不見。有圖有代碼,希望有人幫忙9. angular.js - 單頁應(yīng)用(ng/vue)該如何監(jiān)聽用戶離開當(dāng)前頁面(或者路由)?10. javascript - react native在run-android時(shí)出現(xiàn)這個(gè)錯(cuò)誤該怎么解決?大神賜教

網(wǎng)公網(wǎng)安備