我正在为Moodle创建一个涉及大量编译JavaScript的插件。由于插件的复杂性,我用TypeScript编写它并用Webpack编译它。这一切都很好。
然而,Moodle内置了Grunt任务来帮助JavaScript部署,包括丑化代码。我编译的代码已经缩小了,所以这一步不是必需的。出于某种原因,将已编译的代码放入uglifier会在浏览器中创建与非uglified版本不同的错误。因此,我希望找到一些方法来覆盖Grunt任务。
Grunt的任务非常简单;它使用glob来查找Moodle中各种插件文件夹中的所有javascript文件。我不想修改顶级Gruntfile,以便其他人可以使用此插件而无需触及核心Moodle文件。有没有办法可以在我的插件目录中创建一个Gruntfile(或其他标志)来表示父Gruntfile忽略我编译的文件?
不幸的是,从监视文件夹中删除我的文件不是一种选择。在开发模式下,Moodle服务于预编译的“src”脚本,因此我需要将文件保留在那里用于开发目的(否则,每次我想加载更新的文件时,我都需要手动清除缓存)。
以下是对正在发生的事情的概述:
目录结构:
public (main Moodle directory)
Gruntfile.js
local
my-plugin
amd
src
my-webpack-compiled-plugin.js
build
my-webpack-compiled-plugin.min.js
my-webpack-compiled-plugin.js
是Webpack输出的文件(我不希望被提升的文件)
Gruntfile.js
除此之外还包含:
amd: {
files: ['**/amd/src/**/*.js'],
tasks: ['amd']
}
amd
任务是文件被弄脏的地方。
所以我希望找到一些方法可以排除local/my-plugin/amd/src/my-webpack-compiled-plugin.js
从<{em> {/ 1}}目录中的amd
任务,以保持我的插件自我-contained。