mkfiles,让你更方便地创建模块文件
发布于 7个月前 作者 mytcer 240 次浏览

一. 前言

对前端攻城师而言,在我们平时的开发过程中,向 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'
            }
        ]
    });
});


四. 最后

关于 mkfiles 的更多用法,可以查看 README ,欢迎 提交建议参与开发

回到顶部