Requirejs和Grunt:mainConfigFile vs grunt任务选项

时间:2014-11-19 07:58:15

标签: javascript requirejs gruntjs

我发现存在很多混乱/缺乏处理建筑物的特定方式,需要用咕噜声。我只是混淆了Grunt任务选项中应该直接配置的内容:

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    requirejs: {
        compile: {
            options: {
                baseUrl: './js',
                mainConfigFile: 'config.js',
                optimize: 'none',
                include: ['./main'],
                out: 'optimized.js'
            }
        }
    }
});

然后在配置文件中:

({
    appDir: './',
    baseUrl: './js',
    dir: './dist',
    optimize: 'none',
    optimizeCss: 'standard',
    removeCombined: true,
    paths: {
        jquery: './js/jQuery/jquery',
    }
})

显然,似乎有一些冗余,但这主要是我发现的。有人可以解释为什么或者我错了吗?我可以将所有配置放在一个或另一个中吗?我只打算用almond来处理优化的单个文件。

此外,我还只说明了从我的main.js文件和其中的任何require调用构建依赖关系链的初始单一入口点,或者我可以声明调用模块的文件的通配符列表:

include: ['./variousFiles/*.js']

任何和所有关于如何最好地利用Grunt的要求的说明将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

当您使用RequireJS' r.js优化器有两种配置可供选择:

  1. 运行时配置,这是RequireJS documentation中描述的内容。您可以在此告诉RequireJS在运行时查找模块的位置。

  2. 构建配置,与r.js' documentation描述的配置相同。这告诉r.js如何从模块中构建包。

  3. mainConfigFile选项用于构建配置,它告诉r.js在哪里找到您计划在运行它将创建的包时使用的运行时配置。这是为了防止必须将shimpaths选项从运行时配置复制到构建配置。

    在您的描述中,看起来您正在使mainConfigFile指向构建配置。这没用。