more-copy.js指定文件模板生成到指定的文件目录下

简介: more-copy.js指定文件模板生成到指定的文件目录下

more-copy.js

指定文件模板生成到指定的文件目录下


github: https://github.com/mouday/more-copy.js

npm: https://www.npmjs.com/package/more-copy

安装

# 建议全局安装
npm i more-copy -g

使用

1、命令行


$ mcp [模板路径] [输出路径] [-p json字符串] [-c 配置文件路径]
eg:
$ mcp template.js demo.js

参数


-c 指定配置文件路径 默认为 ./more-copy.config.js
-p 传入参数,接收json格式的字符串

2、用户代码


const { renderToFile } = require('more-copy');
renderToFile({ input, output });

模板

模板渲染基于 Nunjuck.js,言下之意,支持 Nunjuck.js 的所有模板语法

https://nunjucks.bootcss.com/templating.html


命令行

通常情况下,一个项目的文件生成路径是固定的,可以结合 package.json 或者 make 简化命令行


配置

当前目录下可以配置 more-copy.config.js


// 插件示例
const { MkdirPlugin, ParsePlugin, TimePlugin } = require('more-copy');
// 使用自定义插件
const CustomPlugin = require('./custom-plugin.js');
module.exports = {
  // 开启调试
  debug: true,
  // 使用插件,有先后顺序
  plugins: [new CustomPlugin()],
};

已实现插件

用户可以使用插件来给 options 添加参数


插件约定添加 options 对象上的属性,以插件名命名,特殊除外。


例如:使用 ParsePlugin 将会添加属性options.parse


// 插件基类,自定义插件推荐继承该基类,并实现其方法
Plugin(options);
// 1、递归创建目标文件夹
MkdirPlugin();
// 2、改变输出文件名的命名风格,支持naming-style的所有风格参数
// eg: {style: 'pascal'}
OutputNamingPlugin({ style });
// 3、解析路径参数
ParsePlugin();
// 4、ThinkPHP需要用得的参数
// 支持额外参数 -p '{"name": "table_name"}'
ThinkphpPlugin({ prefix: '表前缀' });
// 5、时间插件
TimePlugin();
// 6、Vue需要的参数
// 支持额外参数 -p '{"name": "name"}'
VuePlugin();
// 7、从MySQL中查询数据
// -p '{sql, data}'
MySQLPlugin({
  config
});
// 8、从MySQL中查询表数据数据
// -p '{table}'
TablePlugin({
  config
});
// 9、改变输出文件夹的命名风格,支持naming-style的所有风格参数
OutputDirnameNamingPlugin({style})

自定义插件

custom-plugin.js 用来处理模板入参


const Plugin = require('more-copy');
class CustomPlugin extends Plugin {
  process_options(options) {
    options.custom = {
      name: 'Tom',
    };
    return options;
  }
}
module.exports = CustomPlugin;

相关文章
|
4月前
|
JavaScript API
深入探索fs.WriteStream:Node.js文件写入流的全面解析
深入探索fs.WriteStream:Node.js文件写入流的全面解析
|
2月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
47 0
|
1月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
3月前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
120 2
前端JS读取文件内容并展示到页面上
|
3月前
|
JavaScript 前端开发 数据安全/隐私保护
混淆指定js文件
【9月更文挑战第26天】JavaScript 混淆旨在保护代码知识产权、减小文件体积和提高安全性。方法包括变量名和函数名混淆、代码压缩、控制流平坦化及字符串加密。常用工具如 UglifyJS 和 JScrambler 可实现这些功能。然而,混淆可能带来兼容性和调试困难等问题,需谨慎使用并确保法律合规。
|
2月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
201 0
|
3月前
|
移动开发 JavaScript 前端开发
js之操作文件| 12-5
js之操作文件| 12-5
|
4月前
|
JSON 前端开发 JavaScript
|
3月前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
3月前
|
Web App开发 JavaScript 前端开发
JavaScript 模板字符串
JavaScript 模板字符串
53 3