好的,所以您选择在您的项目中使用 RequireJS。 RequireJS 允许您在 模块 中分解代码 - 不仅可以提高代码的整洁度(减少意大利面条式代码),还可以消除全局命名空间的混乱。
如果您查看 main.js 文件,您会注意到以下内容:
require(['app'], function(app) {
//use app here
console.log(app);
});
它的作用是将 app.js 包含到您的主 javascript 文件中并运行它。
现在,我认为您感到困惑的是 RequireJS 引入的新语法 - 但基本上 每个文件 形成一个 closure and has its own scope。
想象一下:
如果您没有使用 RequireJs 来分隔文件,并且所有代码都在单个文件中。它看起来像这样:
function app () {
return 'Hello from Yeoman!';
}
console.log(app());
您可以在 app.js 中编写任何您想要的内容,只要它使用所需的 RequireJS 语法进行包装即可:
define([], function() {
//Start writing your code here
});
这将包含在 main.js 中并编译成一个文件用于生产。
目前 Yeoman 的文档有点少,所以如果你热衷于编写模块化 JavaScript,我建议你访问 RequireJS 网站和read through their documentation。
如果您不想要/不需要此功能,则在初始化新的 Yeoman 项目时始终可以选择不包含 RequireJS。
希望有帮助:)