model抓取工具
model文件可以集中写在models目录中,也可以分散写在各个模块中,以 model.js 或 user.model.js命名,通过脚本统将引用一收集到一起。
抓取方式
model文件命名约定,英文小写 加 连字符(减号)
/path/to/modle/user.js -> export user from '/path/to/modle/user.js';
/path/to/pages/user-center/model.js -> export userCenter from '/path/to/pages/user-center/model.js';
/path/to/pages/user-center/user-center.model.js -> export userCenter from '/path/to/pages/user-center/user-center.model.js';
设计成webpack插件
插件名:ModelGrabWebpackPlugin,model文件抓取 model抓取工具如果能设计成webpack,使用起来非常方便,提高通用性
参数
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
paths | 需要抓取的目录,一般是/path/to/pages/**/*.jsx |
string or [string] | - |
ignored | 需要忽略的文件 | string or [string] | - |
output | 生成的文件输出目录 | string | - |
watch | 是否启用监听模式,一般开发模式下是true | boolen | - |
template | 文件生成模版,ejs文件,如果生成的文件不符合期望,可以自己通过模版生成文件内容 | string | - |
displayLog | 是否显示log信息 | boolean | false |
template模版文件能得到的数据
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
modelName | 模块名 | string | - |
path | 文件绝对路径 | string | - |
fileName | 不带扩展名的文件名 | string | - |
baseName | 含有扩展名的文件名 | string | - |
非webpack插件方式使用
const path = require('path');
const ModelGrabWebpackPlugin = require('./index');
const rcgwp = new ModelGrabWebpackPlugin({
paths: [
path.resolve(__dirname, './src/models/**/*.js'),
path.resolve(__dirname, './src/pages/**/model.js'),
path.resolve(__dirname, './src/pages/**/*.model.js'),
],
ignored: [
"**/index.js",
"**/all-models.js"
],
output: path.resolve(__dirname, './src/models/all-models.js'),
watch: false,
// template,
displayLog: true,
});
rcgwp.modelGrab();