moodle:用于离线开发的自动插件更新

时间:2016-10-26 12:07:03

标签: moodle

我正在为moodle开发一个插件。每次想要查看我在代码中更改的内容的结果时,都需要更新所有插件。这意味着我必须打开通知页面并单击更新。这样做我浪费了很多时间。此外,它需要互联网连接以在线检查更新。

有没有办法自动更新正在开发的插件?

更新 特别是对AMD文件的更改不会更新。我尝试了以下步骤:

首先尝试:

  1. 更改AMD文件夹中的js-file
  2. [可选]删除缩小版本的js-file
  3. run grunt(uglify)
  4. 页面在firefox或chrome中重新加载 => 在Firefox中重新加载页面后无法看到更改
  5. 第二次尝试:

    1. 更改AMD文件夹中的js-file
    2. run grunt(uglify)
    3. 在version.php更改版本号
    4. 在moodle /管理/网站管理/通知
    5. 更新了插件
    6. 页面在firefox或chrome中重新加载 => 可见变更
    7. 在浏览器和moodle内部禁用了缓存

2 个答案:

答案 0 :(得分:2)

如果您刚刚更改了代码,则不需要进行任何形式的更新 - 进行更改,保存,刷新页面。

如果您更改了任何语言字符串或CSS或创建了任何新的自动加载类,请Purge the site caches查看新版本。

如果启用了调试,则不需要为javascript更改清除任何缓存(但您也可以在config.php中设置$ CFG-> jsrev = -1;因为这有时会有所帮助)。

唯一一次(在开发期间)当您真正需要碰撞版本号然后访问通知页面(不需要互联网连接)时,如果您要添加/删除功能,则更改数据库表某种方式或对'db /'子文件夹中的其他文件之一进行更改(例如caches.php,messages.php)。

答案 1 :(得分:1)

我更改了moodle根文件夹中的config.php并添加了以下行:

$CFG->cachejs = false;
$CFG->debug = DEBUG_DEVELOPER;

最后,我在页面上直接看到了对存储在mod / my-plugin / amd / src中的Javascript文件所做的所有更改,而没有运行grunt。 仅在管理/站点管理/开发/调试下设置调试选项是不够的。