我正在构建一个库,它是一组包含模型视图控制器 Javascript 文件的文件夹。
每个文件都有使用 require 语法声明的依赖项:
define([
'modules/moduleA/src/moduleAModel',
'modules/moduleA/src/moduleAController',
], function(moduleAModel, moduleAController) {
function moduleAView(param) {
// ....
}
我正在使用具有出色“grunt-contrib-requirejs”的 GruntJS 编译这个库。
问题是,作为一个库,没有入口点,也没有主入口。
我希望用户能够在需要时通过调用每个模块来使用它。
以下是我的问题:
首先:
如何为包含所有模块的库构建一个 javascript 文件而不一一声明它们?
其次:
我以后如何在另一个项目中重用这个库?我试过这个:
define(function(require) {
var myLibrary = require('js/external-libs/myMinifiedLibrary.min');
var moduleAV = new moduleAView();
但是当然第二行失败了,有没有类似的东西require(myLibrary.moduleAView)
?
你有什么建议?
更新:
我发现当你在一个文件上缩小所有模块时,你在一个页面上有多个定义,这被解释为 requirejs 的脚本,你必须加载它两次!(第一次是整个文件,第二次是你的主要文件)。然后我的“主要”或入口点是在最摇滚的答案上手动构建的(这仍然是一个问题)。所以我的第二个问题的解决方案是这篇文章:http:
//jaketrent.com/post/dynamically-require-optimized-modules-requirejs/