mm_machine 2.2.9 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/drive.js +6 -6
  2. package/index.js +64 -11
  3. package/package.json +1 -1
package/drive.js CHANGED
@@ -146,11 +146,11 @@ Drive.prototype._getDir = function () {
146
146
  };
147
147
 
148
148
  /**
149
- * 获取模块目录
150
- * @returns {string} 模块目录
149
+ * 获取模板目录
150
+ * @returns {string} 模板目录
151
151
  */
152
- Drive.prototype._getBaseDir = function () {
153
- return this.getParent().getBaseDir();
152
+ Drive.prototype._getTplDir = function () {
153
+ return this.getParent().getTplDir();
154
154
  };
155
155
 
156
156
  /**
@@ -173,7 +173,7 @@ Drive.prototype._createScriptFile = function (file, model = {}, tpl_dir = '') {
173
173
  * @returns {string} 脚本模板内容
174
174
  */
175
175
  Drive.prototype.getScriptTpl = function (tpl_dir = '') {
176
- var f = './script.tpl.js'.fullname(tpl_dir || this._getBaseDir());
176
+ var f = './script.tpl.js'.fullname(tpl_dir || this._getTplDir());
177
177
  if (f.hasFile()) {
178
178
  return f.loadText();
179
179
  } else {
@@ -351,7 +351,7 @@ Drive.prototype._createConfigFile = function (file) {
351
351
  * @returns {string} 配置模板内容
352
352
  */
353
353
  Drive.prototype.getConfigTpl = function (tpl_dir = '') {
354
- var f = './config.tpl.json'.fullname(tpl_dir || this._getBaseDir());
354
+ var f = './config.tpl.json'.fullname(tpl_dir || this._getTplDir());
355
355
  if (f.hasFile()) {
356
356
  return f.loadText();
357
357
  } else {
package/index.js CHANGED
@@ -6,25 +6,70 @@ const { Drive } = require('./drive.js');
6
6
  */
7
7
  class Manager extends Mod {
8
8
  static config = {
9
- // 管理器名称
9
+ /**
10
+ * 管理器名称
11
+ * @type {string}
12
+ */
10
13
  name: 'manager',
11
- // 管理器描述
12
- description: '管理模块',
13
- // 基础目录,加载模块内置资源
14
+ /**
15
+ * 管理器标题
16
+ * @type {string}
17
+ */
18
+ title: '管理器',
19
+ /**
20
+ * 管理器描述
21
+ * @type {string}
22
+ */
23
+ description: '用于管理驱动',
24
+ /**
25
+ * 模板目录
26
+ * @type {string}
27
+ */
28
+ tpl_dir: __dirname,
29
+ /**
30
+ * 基础目录,加载模块内置资源
31
+ * @type {string}
32
+ */
14
33
  base_dir: '../common/manager'.fullname(__dirname),
15
- // 自定义目录,加载项目自定义资源
34
+ /**
35
+ * 自定义目录,加载项目自定义资源
36
+ * @type {string}
37
+ */
16
38
  dir: './ai/manager'.fullname(),
17
- // 文件拓展名
39
+ /**
40
+ * 检索文件名
41
+ * @type {string}
42
+ */
18
43
  filename: 'manager.json',
19
- // 懒加载
44
+ /**
45
+ * 是否懒加载
46
+ * @type {boolean}
47
+ */
20
48
  lazy_load: true,
21
- // 作用域(同时作为检索的后缀名)
49
+ /**
50
+ * 作用域(同时作为检索的后缀名)
51
+ * @type {string}
52
+ */
22
53
  scope: ($.val && $.val.scope) ? $.val.scope + '' : 'server',
23
- // 排序项
54
+ /**
55
+ * 排序项
56
+ * @type {string}
57
+ */
24
58
  sort_key: 'sort',
25
- // 模式 script脚本 | json配置 | drive驱动
59
+ /**
60
+ * 类型 script脚本 | json配置 | drive驱动
61
+ * @type {string}
62
+ */
26
63
  type: 'drive',
27
- // 模式 1.生产模式 2.热更新模式 3.热重载模式 4.热更新+重载模式 5.重载模式
64
+ /**
65
+ * 模式
66
+ * 1.生产模式,改变文件不会重新加载
67
+ * 2.热更新模式,改变配置文件会重新加载配置,不重新加载脚本
68
+ * 3.热重载模式,改变配置文件都会加载配置和脚本
69
+ * 4.热更新+重载模式,改变配置文件重新加载配置和脚本,执行完后重新加载脚本
70
+ * 5.重载模式,执行完后重新加载脚本,避免变量污染
71
+ * @type {number}
72
+ */
28
73
  mode: 3
29
74
  };
30
75
 
@@ -78,6 +123,14 @@ Manager.prototype.getBaseDir = function () {
78
123
  return this.config.base_dir || __dirname;
79
124
  };
80
125
 
126
+ /**
127
+ * 获取模板目录
128
+ * @returns {string} 模板目录
129
+ */
130
+ Manager.prototype.getTplDir = function () {
131
+ return this.config.tpl_dir || __dirname;
132
+ };
133
+
81
134
  /**
82
135
  * 默认驱动
83
136
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_machine",
3
- "version": "2.2.9",
3
+ "version": "2.3.0",
4
4
  "description": "A flexible Node.js plugin mechanism system for dynamic loading, management and execution of modules. Supports hot reload, lifecycle management, and modern JavaScript features.",
5
5
  "main": "index.js",
6
6
  "scripts": {