RequireJs Optimizer缩小为一个文件,但不启动main-built

Thu*_*ten 6 requirejs

我有一个简单的requirejs项目,我试图使用节点优化到一个文件.项目结构是这样的.


|___index.html
|
????css
?       style.css
?
????scripts
    ?   main.js
    ?
    ????lib
    ?       require.js
    ?       underscore.js
    ?
    ????modules
            module1.js
            module2.js
            module3.js

这是我的构建文件

//build.js
({
    baseUrl: "./SimpleRequireJsProject/scripts",
    name:"main",
    out:"main-built.js"
})
Run Code Online (Sandbox Code Playgroud)

使用项目文件外的r.js和build.js.我使用节点控制台运行优化器.

node r.js -o build.js
Run Code Online (Sandbox Code Playgroud)

一切都很好.输出main-built.js被创建.但是,当我更换

<script data-main="scripts/main" src="scripts/lib/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

<script data-main="scripts/main-built" src="scripts/lib/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

当我运行索引文件.没有错误,但没有输出.我期待像这样的控制台消息.它与原始data-main一起使用

//output
main started 
m1 started 
m2 started..starting m3 from m2
m3 started 

请帮我找出项目没有运行的原因,也没有错误.:(

  //main.js
    define([
        'lib/underscore',
        'modules/module1',
        'modules/module2'
    ],
        function (_, Module1, Module2) {
            console.log('main started');
            var module1 = new Module1();
            var module2 = new Module2();
            module1.start();
            module2.start();
        });


    //module1.js
    define(['lib/underscore'],
        function ( _) {
            function Module1() {
                this.start = function () {
                    console.log('m1 started');

                };
            }

            return Module1;
        });

    //module2.js
    define(['lib/underscore', 'modules/module3'],
        function (_, Module3) {
            function Module2() {
                this.start = function () {
                    console.log('m2 started..starting m3 from m2');

                    var module3 = new Module3();
                    module3.start();

                };
            }

            return Module2;
        });

    //module3
    define([
        'underscore'],
        function (_) {
            function Module3() {
                this.start = function () {
                    console.log('m3 started');
                };
            }

            return Module3;
        });


    //index.html

    <!DOCTYPE html>
    <html>
    <head>
        <link href="css/style.css" rel="stylesheet" type="text/css">
        <title></title>
    </head>

    <body>
    <div id="main"></div>
    <script data-main="scripts/main-built" src="scripts/lib/require.js"></script>
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

Thu*_*ten 4

我发现了我的问题。“main-built.js”必须是“main.js”,或者在 main-built 中,模块名称需要从“main”更改为“main-built”。