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