【发布时间】:2014-07-09 15:51:21
【问题描述】:
我有一个单页 Web 应用程序,它使用 RequireJS 来组织和构造 JavaScript 代码。 在应用程序中,我有一些 JS 文件我想使用 r.js 进行优化,因为它们属于将由我的客户使用的 API。所以,我只想优化这些文件并保持其余代码不变。
这是我的应用程序结构:
- 应用程序
- main.js
- 许多其他文件和文件夹
- 脚本
- 我的API
- app.js
- 许多其他文件和文件夹
- require.js
- jquery.js
- build.js
- 我的API
- index.htm
所有的 JavaScript 代码都位于 app 和 scripts 文件夹下。正如我之前提到的,所有这些文件都被定义为 RequireJS 模块。这就是 main.js 现在的样子:
require.config({
baseUrl: 'scripts',
paths: {
base: 'myAPI/base',
proxy: 'myAPI/proxyObject',
localization: 'myAPI/localization',
app: '../app',
}
});
require(['myAPI/app'],
function (app) {
//app.init....
}
);
如您所见,在 paths 配置中,我定义了一些指向 myAPI(我要优化的文件夹)的别名。
这是我从 index.htm 文件中引用 RequireJS 的方式:
<script data-main="app/main" src="scripts/require.js"></script>
这是我为 r.js (scripts/build.js) 创建的构建文件:
({
baseUrl: '.',
out: 'build/myAPI.js',
name: 'myAPI/app',
include: ['some modules'],
excludeShallow: ['some modules defined in the app folder'],
mainConfigFile: '../app/main.js',
optimize: 'uglify2',
optimizeCss: 'none'
})
生成了优化的文件,但我在尝试使用它时遇到了一些挑战:
- 如何从应用中引用该文件?
- 现在对 myAPI 模块的依赖关系已损坏。 RequireJS 没有找到 myAPI 中定义的模块。
- 我可以做些什么来保持 require.config.paths 中定义的别名正常工作?
您能帮我就这种情况提出一些建议或反馈吗?
谢谢!!
【问题讨论】:
标签: javascript requirejs r.js