一. 前言
对前端攻城师而言,在我们平时的开发过程中,向 assets 目录中新增一个“有特定目录结构及指定文件”的模块目录,已是很频繁的事情。
对于这一频繁发生的事情,你是如何应对的呢?还在以人肉的方式,频繁地摧残自己的右手?
现在有了 mkfiles,从此告别繁琐,解放右手,让一切 so easy !!!
二. 它是什么?
mkfiles 是一个 npm 包,它擅长批量地创建“有特定目录结构及指定文件”的模块目录。如果你愿意,甚至可以在创建模块文件的同时,为其设置指定的文件内容。
三. 如何使用?
在仓库的根目录下,运行 (sudo) npm install mkfiles --save-dev
,然后结合我们熟悉的打包工具(以grunt为例),通过定制打包任务,让新增模块目录这样的事情变得更简单,比如:
1. 新增一个跨终端架构的模块目录
// 跨终端架构的模块目录结构,类似下面这样:
src
-- mods
-- modName
-- pc
-- index.js
-- index.less
-- index.xtpl.html
-- pad
-- index.js
-- index.less
-- index.xtpl.html
-- phone
-- index.js
-- index.less
-- index.xtpl.html
// 要新增一个这样的模块,基于 grunt + mkfiles 的实现如下:
grunt.registerTask('add', function(modName) {
var mkfiles = require('mkfiles');
mkfiles({
path: './src/mods/' + modName + '/',
dirs: ['pc', 'pad', 'phone'],
files: ['index.js', 'index.less', 'index.xtpl.html']
});
});
// 注:运行 grunt add:yourModName 即可。
2. 新增带有指定内容的模块文件
// 比如,我们想在 src/mods 目录下增加一个这样的模块
src
-- mods
-- modName
-- index.js // 文件内容为 "your js code"
-- index.less // 文件内容为 "your less code"
// 基于 grunt + mkfiles 的实现如下:
grunt.registerTask('add', function(modName) {
var mkfiles = require('mkfiles');
mkfiles({
path: './src/mods/',
dirs: [modName],
files: [
{
file: 'index.js',
content: 'your js code' // 推荐基于模板引擎来生成
},
{
file: 'index.less',
content: 'your less code'
}
]
});
});