javascript - Ember.js 中的类自动加载器?

标签 javascript build ember.js browserify

我正在寻找一个自动加载器,类似于它们在语言中的操作方式(例如 http://php.net/manual/en/language.oop5.autoload.php )。我仅指定用于查找文件的算法,它会自动加载到应用程序中。

我最初的想法是一个扫描目录并构建索引文件的构建过程。有没有更好的办法?

最佳答案

这是我使用 browserify 和 node.js 构建脚本的解决方案,但我很好奇是否有人有更好的解决方案:

构建.js:

var glob = require("glob");
var fs   = require('fs');
var path = require('path');

function buildFile(directory, build_file, suffix) {
  glob(directory, function(err, files) {
    if (fs.existsSync(build_file)) {
      fs.unlinkSync(build_file);
    }
    fs.appendFileSync(build_file, 'module.exports = {');
    var controllers = {};
    files.forEach(function (file) {
      var key = path.basename(file, '.js')+suffix;
      var value = "require('"+file+"')";
      fs.appendFileSync(build_file, '\n  '+key+': '+value + ',');
    });
    fs.appendFileSync(build_file, '\n}');
  });
};

buildFile('./controllers/*.js' , './controllers.js', 'Controller');
buildFile('./routes/*.js'      , './routes.js'     , 'Route');

应用程序.js:

var App = Ember.Application.create();
App.reopen(require('./controllers.js'));
App.reopen(require('./routes.js'));

routes.js(来自 build.js 的示例输出):

module.exports = {
  ApplicationRoute: require('./routes/Application.js'),
  IndexRoute: require('./routes/Index.js'),
  RecoverRoute: require('./routes/Recover.js'),
  RegisterRoute: require('./routes/Register.js'),
  UsersRoute: require('./routes/Users.js'),
  UsersNewRoute: require('./routes/UsersNew.js'),
  ValidateRoute: require('./routes/Validate.js'),
}

我使用 Grunt.js 来观察并在发生变化时自动重建。

关于javascript - Ember.js 中的类自动加载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18002564/

相关文章:

javascript - 使用 javascript 或 jquery 垂直扩展弹出窗口

javascript - 使用 javascript 匹配特定函数调用和捕获参数的正则表达式

eclipse - 如何从Eclipse中的自动构建中排除一个项目?

javascript - 加载页面时如何使用 Angular 检查复选框?

Makefile 来自同一源文件的多个目标,具有不同的标志

c++ - 为什么 "all"附加到我在 Eclipse 中的自定义构建命令?

node.js - 如何在 Jade 之上的 Handlebars.js 模板中使用 Ember.js {{action}}

jquery - Ember-RequireJS

javascript - 如何仅将模型 [0] 传递给 Ember 模板中的组件?

javascript - d3 单击时聚焦于节点