我可以从子目录覆盖Gruntfile中的设置吗?

时间:2017-08-10 19:54:26

标签: gruntjs

我正在为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。

0 个答案:

没有答案