requireJS - 文件名和文件夹约定以及依赖项解析

时间:2015-05-22 00:08:01

标签: requirejs

我正在使用史蒂夫·桑德森的自耕选淘汰脚手架描述here

但是我有一个问题,如果我决定为不同类型的模块创建文件夹,如果我想使用文件夹名称约定将这些模块中的一个注入到我的组件中,那么我必须使用非常详细的路径解析比如"../../services/service"

define(["knockout", "text!./home.html","../../services/service"], function(ko, homeTemplate, service) {

  function HomeViewModel(route) {
    this.message = ko.observable('Welcome to App!');
  }

  HomeViewModel.prototype.doSomething = function() {
    this.message('You invoked doSomething() on the viewmodel.');
  };

  return { viewModel: HomeViewModel, template: homeTemplate };

});

我想知道是否有更好的方法来做到这一点。例如,只能使用文件夹名称和文件名,如"services/service"

1 个答案:

答案 0 :(得分:1)

paths配置是您的答案(ref)。在您的配置中执行:

require.config({
    // ...
    paths: {
        'services': 'path/to/services/folder'
    },
    // ...
})

现在您可以要求任何其他模块中的path/to/services/folder/myservice.js模块:

define(['services/myservice'], function(myservice) {
    // ...
});