对于我们的项目,我们有一个api和一个站点。大多数代码都位于api中,应该允许我们使用相同的api创建不同的页面。 我有一些问题要完全理解应用于我的api文件的requirejs优化版本的命名,我想在我的优化文件中强制执行一些特定的命名(' myname')。 这是文件结构的示例:
api/
sources/
js/
sub1/
file_a.js `define([], function(){});`
file_b.js `define([], function(){});`
file_a.js `define(['file_b', 'sub1/file_a'], function(){});`
file_b.js `define(['sub1/file_b'], function(){});`
优化的输出看起来像这样:
optimized.js:
defined('js/sub1/file_a', [], function(){});
defined('js/sub1/file_b', [], function(){});
defined('js/file_b', [], function(){});
defined('js/file_a', [], function(){});
有没有办法确保命名定义是:
defined('myapi/sub1/file_a', [], function(){});
defined('myapi/sub1/file_b', [], function(){});
defined('myapi/file_b', [], function(){});
defined('myapi/file_a', [], function(){});
或者这是错误的做法?
在网站的javascript文件中,我会使用这些名称来引用它们:
app.js
define(['optimized'], function(){
define(['myapi/sub1/file_a'], function(FileA){});
});
api / libs文件夹结构和优化的最佳实践是什么?欢迎任何反馈。
修改
我使用grunt构建和mi配置是直截了当的。
requirejs: {
compile: {
options: {
baseUrl: "api/sources/js",
mainConfigFile: "api/sources/js/requireBuildConfig.js",
name: "main.js", // assumes a production build using almond
out: "path/to/optimized.js",
includes: [
'sub1/file_a',
'sub1/file_b',
'file_b',
'file_a',
]
}
}
}