【问题标题】:Inline require() working in requirejs but not with optimized almond build内联 require() 在 requirejs 中工作,但不适用于优化的 almond 构建
【发布时间】:2013-04-30 11:17:13
【问题描述】:

正如标题所说,我的内联 require 调用在未优化的 requirejs 运行中运行,但在使用 grunt 和 almondjs 构建时无法运行。

Uncaught Error: undefined missing views/some/view

任何文件的顶部可能是:

define(
['jquery', 'app'],
function($, App) {

后来基于业务逻辑我希望能够要求另一个文件

require(['views/some/view'], function(SomeView){
     console.log(SomeView);
});

我也尝试了替代语法:

var SomeView= require('views/some/view');

这一切都使用未构建的 requirejs 版本。但是当我用 grunt 和 almond 构建它时它又失败了

    requirejs: {
        compile: {
            options: {
                name: "../components/almond/almond", 
                baseUrl: "src",
                mainConfigFile: "./require.config.js",
                include: ['main'], 
                insertRequire: ['main'], // Add a require step in at the end for the main module.
                wrap: true, // Wrap everything up in a closure
                generateSourceMaps: true, // Experimental
                preserveLicenseComments: false, // Needs turned off for generateSourceMaps
                optimize: "uglify2", // Supports generateSourceMaps
                out: "assets/javascripts/build.js"
            }
        }
    },

如果我在定义调用中将它放在文件顶部,我可以让它在杏仁中正常工作,但在 AMD 中保持精简不是更可取吗?

【问题讨论】:

    标签: javascript backbone.js requirejs gruntjs almond


    【解决方案1】:

    根据 Almond 文档,它最适用于非动态加载并将所有内容打包到一个文件中。

    您应该能够在编译选项中将“findNestedDependencies”设置为 true,以确保您的内联 require 调用包含在构建中。

    【讨论】:

    • 谢谢,你拯救了我的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2013-07-31
    相关资源
    最近更新 更多