设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2461|回复: 4
打印 上一主题 下一主题

[原创发布] [技术验证]: 插件的ES模块化加载 (附代码)

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1912
在线时间
1554 小时
注册时间
2013-4-13
帖子
917
跳转到指定楼层
1
发表于 2020-12-12 16:40:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
使用ES模块来写脚本

原理:

给PluginManager添加loadModule方法用来加载模块
在scripts文件夹中放入插件的入口插件(本例中: TestModule.js)
在入口插件中加载入口模块
入口插件可以和其他插件一样使用插件参数和插件命令
在js文件夹中新建modules文件夹, 将模块(本例中TestModule)文件夹
我们约定模块文件夹下用index.js作为统一的入口

使用 import {} from './def.js' 来导入相对路径模块
使用 import {} from '/js/modules/abc/def.js 来导入绝对路径模块(以工程目录为根)

vscode中增加支持路径跳转的设置, 在根目录添加jsconfig.json
在其中增加:
{"compilerOptions": {"paths": {"/*": ["*"]}}}

Example 见附件

JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // ModulePlugin
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @target MZ
  7.  * @plugindesc Allow Load Module Plugins
  8.  * @author Heartcase
  9.  *
  10.  * @help ModulePlugin.js
  11.  *
  12.  * Put the Module Folder under js/modules and the entry file should be index.js
  13.  * To invoke module, add the module entry plugin in plugins folder and enable it
  14.  * then call PluginManager.loadModule inside your entry plugin
  15.  */
  16.  
  17. PluginManager.loadModule = (filename) => {
  18.   const url = `js/modules/${filename}/index.js`;
  19.   const script = document.createElement('script');
  20.   script.type = 'module';
  21.   script.src = url;
  22.   document.body.appendChild(script);
  23. };

js.zip

2.32 KB, 下载次数: 48

夏普的道具店

塞露提亚-道具屋的经营妙方同人作品
发布帖:点击这里

Lv3.寻梦者

梦石
0
星屑
3339
在线时间
277 小时
注册时间
2019-4-23
帖子
202
2
发表于 2020-12-14 09:58:22 | 只看该作者
这样不好配置参数吧

点评

6666  发表于 2020-12-15 09:56
每个模块插件会有一个入口插件放在plugins里面, 主楼的插件只是提供模块插件的底层支持, 参数和命令一样可以用.  发表于 2020-12-14 20:34
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
25
在线时间
4 小时
注册时间
2022-2-22
帖子
30
3
发表于 2022-2-27 21:33:30 | 只看该作者
~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-9 05:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表