问题 内联require()在requirejs中工作,但没有优化的杏仁构建


正如标题所说,我的内联要求调用正在非优化的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版本。但是,当我用咕噜声和杏仁制作它时,它再次失败了

    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不是更喜欢保持它的精益吗?


11750
2018-03-20 05:13


起源



答案:


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

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


10
2018-04-30 03:17



+1有同样的问题,这解决了它。 - daemon
谢谢,你救了我的一天! - njtman


答案:


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

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


10
2018-04-30 03:17



+1有同样的问题,这解决了它。 - daemon
谢谢,你救了我的一天! - njtman