【问题标题】:Requirejs and Grunt: mainConfigFile vs grunt task optionsRequirejs 和 Grunt:mainConfigFile 与 grunt 任务选项
【发布时间】:2014-11-19 07:58:14
【问题描述】:

我发现在 grunt 中使用 require 处理构建存在很多混乱/缺乏特定的方法。我只是很困惑应该直接在 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',
    }
})

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

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

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

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

【问题讨论】:

    标签: javascript requirejs gruntjs


    【解决方案1】:

    当你使用 RequireJS 的 r.js 优化器时,有两种配置:

    1. RequireJS documentation 中描述的 runtime 配置。这是你告诉 RequireJS 在运行时在哪里找到模块的地方。

    2. build 配置,如r.js' documentation 所述。这告诉r.js 如何从您的模块构建捆绑包。

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

    在您的描述中,您似乎正在使 mainConfigFile 指向构建配置。这是没用的。

    【讨论】:

    • 谢谢路易斯 这就是我开始收集的内容,因为我阅读了更多内容。如果我只在 grunt 构建中使用 require,我是否还需要一个 runtime 配置,我仍然有点困惑?如果这是真的,最好的做法是将我的所有 build 配置写入我的 require 任务选项(垫片、路径等 ...),或者是否有适当的方法来指向外部构建配置文件,以免弄乱 grunt conifg 对象?
    • 理论上有可能在使用r.js 执行构建后得到一个不需要任何运行时配置的包。这将根据具体情况确定。一个不可能的例子是,开发人员将所有模块(包括 jQuery)组合在一个包中,并希望 RequireJS 首先从 CDN 加载 jQuery,然后在 CDN 关闭时回退到从包中加载它。在这种情况下,必须有一个运行时配置。
    • 如果您处于不需要运行时配置的情况,那么您可以将所有内容都放在构建配置中,而不需要运行时配置。我不知道指向外部 build 配置的方法。可能存在允许这样做的工具,但我不知道。
    • 酷,是的,目前还没有条件 CDN 加载。基本上只需要在构建中按顺序排列模块,所以我想我会保持简单,现在只在 grunt 任务配置中工作。感谢您的信息!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多