【问题标题】:moodle: Automatic plugin updates for developing offlinemoodle:用于离线开发的自动插件更新
【发布时间】:2016-11-01 06:23:43
【问题描述】:

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

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

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

第一次尝试:

  1. 更改 AMD 文件夹中的 js 文件
  2. [可选] 删除 js 文件的缩小版
  3. 运行 grunt(丑化)
  4. 在 Firefox 或 chrome 中重新加载页面 => 在 Firefox 中重新加载页面后看不到任何变化

第二次尝试:

  1. 更改 AMD 文件夹中的 js 文件
  2. 运行 grunt(丑化)
  3. 在version.php更改版本号
  4. moodle / 管理 / 网站管理 / 通知中的更新插件
  5. 在 Firefox 或 chrome 中重新加载页面 => 变化可见

缓存在浏览器和moodle中被禁用

【问题讨论】:

    标签: moodle


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这不会影响 AMD 文件。我更新了我的问题,使其更准确。
    • 打开调试,您将获得 AMD 模块的非缩小版,并且在您刷新页面后会立即更新。您只需要在部署到实时服务器之前运行 grunt。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      相关资源
      最近更新 更多