是否有可能从要求优化器构建配置中排除模块,但该模块及其依赖项分别优化
Is it possible to exclude a module from a require optimizer build config but have that module and it's dependencies be optimized separately?
所以情况是这样的:
我有一堆页面特定的js文件,我正在使用r.js优化。
其中99%定义了一个名为core.js的模块作为依赖项。Core有5个自己的依赖项
我想通过从优化版本的页面js文件中排除核心来利用缓存。
所以在我的build.js中,我尝试了以下内容:
modules: [
{
name : 'modules/core'
},
{
name: 'homepage',
exclude : ['modules/core']
}
]
当我运行优化器时,它会优化两个模块/核心&首页还可以。
进入一个使用home .js的页面,问题是:core.js &它的依赖项被单独加载,导致7个请求而不是2个。
在上面的例子中,我想要实现的是:把主页。js和它的依赖项优化成一个文件,并在一个优化版本的core.js中加载,而不是在core.js和它的依赖项中单独加载。
这可能吗?
您有两个选择,在构建之后:
1)修改顶层加载,使modules/core在任何其他加载之前加载:
require(['modules/core'], function () {
//Now do normal require stuff in here
});
使用另一个嵌套的require()调用,如果你看到它的模块在主页完成加载之前被请求。
2)插入要求。将core中的所有模块指向core文件的配置块。requirejs只会在多个模块id都指向core.js文件时获取一次:
require.config({
paths: {
'mod/one': 'modules/core',
'mod/two', 'modules/core',
...
}
});
或者看看这样的示例项目,它设置了加载一个通用层,然后是一个特定于页面的层,但在构建后不需要做源代码修改就可以工作(只是使用#1的变体,但将其设置为以源代码形式工作):
https://github.com/requirejs/example-multipage相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何从模块链中调用函数.导出到节点中
- 尽管链接成功并已成功下载,但未找到NPM模块
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 从模块内部访问Express装载路径
- 如何在生产环境中动态加载多个优化的requirejs模块
- 如何指定哪些Require.js模块是用优化器压缩的,哪些不是
- Requirejs 优化器 - 模块设置无法跳过外部源
- 确保在 r.js 优化的应用中调用 RequireJS 模块
- r.js优化器-构建一个包含一些模块和垫片的全包js
- requirejs优化器命名了模块错误
- 如何优化作为RequireJS模块创建的JavaScript文件子集
- 我如何在优化文件之外的需求中实例化优化模块
- 是否有可能从要求优化器构建配置中排除模块,但该模块及其依赖项分别优化
- RequireJS-skipDirOptimize:true设置不会优化我的主模块
- Ember和Require.JS优化器“;错误:找不到模块jquery"
- 如何使用系统.网状物使用amd模块进行优化(.net-js-bundler)
- 将嵌套模块与require.js优化器结合起来
- RequireJS优化器在没有“;js”;以及依赖于内联模块的模块