要求.js保持无限重装

Require.js keep infinite reloading

本文关键字:无限 重装 js 要求      更新时间:2023-09-26

我想通过r.js -o app.build.js来缩小我的requirejs项目

完成后,结果破坏了我的网站。

作为附加的剪辑,您可以看到页面不断重新加载,控制台显示一次又一次地重新加载缩小的模块

https://www.youtube.com/watch?v=CQvWQ28nG1c&feature=youtu.be

知道吗?

        <script type="text/javascript" src="http://mysite/js/require.js" 
         data-main="http://mysite/js/dist/app.out.js" defer async="true">
         </script>

越野车页面在这里

http://www.foolpin.com/review/%E9%BB%83%E5%AE%89

app.build.js

    {
        name: "app.main.js",
        mainConfigFile: 'app.main.js',
        out: "dist/app.out.js",
        optimize: "uglify2",
        preserveLicenseComments: false,
        generateSourceMaps: false,
        optimizeAllPluginResources: false,
        findNestedDependencies: false,
        wrap: true,
        wrapShim: true,
        include: ["./require.js"],
    }

app.main.js

    requirejs.config({
        paths: {
            require: './require',
            jquery: './vendor/js/jquery-2.1.1.min',
            underscore: './vendor/js/underscore-min',
            backbone: './vendor/js/backbone-min',
            hbs: './vendor/js/hbs/hbs',
            handlebars: './vendor/js/handlebars-v4.0.5',
        },
        hbs: { // optional
            helpers: true,            // default: true
            templateExtension: 'hbs', // default: 'hbs'
            partialsUrl: ''           // default: ''
        },
        shim: {
            handlebars: {
                exports: 'Handlebars'
            },
            backbone: {
                deps: [
                    'underscore',
                    'jquery'
                ],
                exports: 'Backbone'
            },
            underscore: {
                exports: '_'
            }
        },
    });
    requirejs(["app_config", "app"],function(cfg, App, noop_ahoy){
        return App.initialize();
    });

更新

我有多个文件,有些文件本身具有匿名功能

会是问题吗?

https://gist.github.com/poc7667/555a754a105a88cde13d

    define([
        ...
        "jquery"
    ],function(

该问题是由可能很容易出错的事情引起的。当您使用 RequireJS 时,您始终使用您提供的代码或类似的东西加载捆绑包:

<script type="text/javascript" src="http://mysite/js/require.js" 
         data-main="http://mysite/js/dist/app.out.js" defer async="true">
         </script>

关键是你只有src="path/to/require.jsdata-main="path/to/bundle.js".这很重要。

您的错误是在捆绑包中包含 RequireJS,并将脚本标签更改为类似

<script type="text/javascript" src="http://mysite/js/bundle.js" 
         data-main="http://mysite/js/bundle.js" defer async="true">
         </script>

由于矩阵中的一些故障,这会导致一遍又一遍地递归加载相同的脚本,因为在捆绑包中的某个地方.js你需要require,它再次获取捆绑.js一切都变得疯狂。这是我唯一能想到的。您现在的页面似乎不再使用捆绑脚本,所以我无法验证这一点。

解决方案是不要将 RequireJS 本身包含在捆绑包中。这些都在文档中。