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

Requirejs 合并具有依赖项的文件-需要js,requirejs,Requirejs,我正在使用requirejs。 我想把两个文件合并成一个。 我正在使用grunt的require js插件。 第一个文件是 第二个是我自己的文件,如下所示: define('userGlosowanie', ['jquery', 'raty'], function ($) { 'use strict'; return { init: function () { } } }); 这是我的咕噜脚本: requirejs: { use

我正在使用requirejs。 我想把两个文件合并成一个。 我正在使用grunt的require js插件。 第一个文件是

第二个是我自己的文件,如下所示:

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文件位于单独的文件中,我不想将其包含在编译文件中。如何操作?

您可以使用
排除
选项将特定模块/文件排除在组合/优化文件中

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

    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,
        }
     }
}
使用
modules
dir
(output dir)选项,您可能无法设置输出文件名,但与模块同名的优化文件将放置在选项
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,
           }
     }
}

示例用法/解释是

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

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

它不工作:{[错误:错误:如果使用了“modules”选项,那么应该设置一个“dir”选项,并且不应该使用“out”,因为“out”仅用于单个文件优化输出。在Function.build.createConfig(D:\strony\www\polskieszlaki\node\modules\grunt contrib requirejs\node\modules\requirejs\bin\r.js:26899:19)]originalError:[错误:如果使用了“modules”选项,则应设置“dir”选项,并且不应使用“out”,因为“out”仅用于单文件优化输出。]}更新了我的答案-请在根级别尝试使用exclude选项。如果不起作用,另一种方法是——正如错误消息所建议的那样,使用“dir”,并且根目录中的modules optionexclude也不工作——尝试这样做。不想使用dir,因为它正在处理所有文件-不需要。从未使用过此选项,但如果要防止复制/优化所有文件,则可能需要使用skipDirOptimize:true选项。文档有点模糊