合并具有依赖项的文件 - 需要js

时间:2014-07-11 15:38:33

标签: requirejs

我正在使用require JS。 我想把两个文件合二为一。 我正在使用那个需要js插件的grunt。 第一个文件是raty jquery script

其次是我自己的文件:

define('userGlosowanie', ['jquery', 'raty'], function ($) {
    'use strict';

    return {
        init: function () {
        }
    }
});

这是我的咕噜剧本:

requirejs: {
    userGlosowanie: {
        options: {
            baseUrl: "js/libs",
            paths: {
                userGlosowanie: "../dev/uzytkownik-glosowanie",
                raty: "raty/jquery.raty",
            },
            name: "userGlosowanie",
            out: "js/build/uzytkownik.min.js",
            preserveLicenseComments: false,

        }
    },
},

问题是我有错误:

Running "requirejs:user" (requirejs) task
>> Error: ENOENT, no such file or directory
>> 'D:\strony\www\polskieszlaki\js\libs\jquery.js'
>> In module tree:
>>     user
Warning: RequireJS failed. Use --force to continue.

我的jquery文件位于单独的文件中,我不想将其包含在编译文件中。怎么做?

2 个答案:

答案 0 :(得分:1)

如果您不想在构建文件中包含jquery,请在路径配置中将其标记为empty:

options: {
    paths: {
        userGlosowanie: "../dev/uzytkownik-glosowanie",
        raty: "raty/jquery.raty",
        jquery: "empty:"
    }
}

答案 1 :(得分:0)

您可以使用exclude选项排除特定模块/文件包含在合并/优化文件中

在你的情况下,它看起来像 -

    requirejs: {
        userGlosowanie: {
            options: {
                baseUrl: "js/libs",
                paths: {
                    userGlosowanie: "../dev/uzytkownik-glosowanie",
                    raty: "raty/jquery.raty",
                },
                out: "js/build/uzytkownik.min.js",
                name: "userGlosowanie",
                exclude: "jquery" 
                preserveLicenseComments: false,
        }
     }
}

使用modulesdir(输出目录)选项,您可能无法设置输出文件名,但与模块同名的optmized文件将放在目录集中通过选项dir

    requirejs: {
        userGlosowanie: {
            options: {
                baseUrl: "js/libs",
                paths: {
                    userGlosowanie: "../dev/uzytkownik-glosowanie",
                    raty: "raty/jquery.raty",
                },
                dir: "../public",
                modules : [{
                name: "userGlosowanie",
                exclude: "jquery"
                }],
                preserveLicenseComments: false,
           }
     }
}

示例用法/说明是here