【发布时间】:2014-08-08 18:00:51
【问题描述】:
我正在尝试使用 AngularJS、Browserify 和 Gulp 构建样板。我让所有 Gulp 任务以及 Browserify 都能正常工作。我现在正试图找出为 Angular 应用程序加载所有必要文件的最佳方式。
我只用这三行代码来创建应用程序:
var angular = require('angular');
require('angular-ui-router');
angular.module('myApp', ['ui.router']);
然后我添加我的路由器逻辑:
angular.module('myApp').config(['$stateProvider', '$locationProvider', '$urlRouterProvider', require('./routes')]);
一切正常。但是,对于 Angular 应用程序所需的其余文件(控制器、服务、指令等),可能需要包含任意数量的文件。这很容易硬编码,例如:
angular.module('myApp').controller('IndexCtrl', require('./controllers/index'))
但我不想为我需要添加到应用程序的每个文件都硬编码这样的行。我首先研究使用fs 解析每个目录并以这种方式加载文件,但没有运气。我现在正在尝试使用以下格式的controllers/index.js 文件:
'use strict';
var controllers = [
{
'name': 'HomeCtrl',
'path': './controllers/home'
}
];
module.exports = controllers;
然后我尝试解析和加载文件:
require('./controllers/index').forEach(function(controller) {
angular.module('myApp').controller(controller.name, require(controller.path));
});
这可以很好地解析 json 文件,但是当它尝试从文件中读取路径时出现 cannot find module 错误。
有没有更好的方法来使用 Browserify 将可变数量的 AngularJS 文件加载到应用程序中?
【问题讨论】:
标签: javascript angularjs gulp browserify