使用grunt以正确的顺序连接ember文件

时间:2013-12-03 09:35:07

标签: javascript node.js ember.js gruntjs npm

我正在使用Grunt将我的javascript编译成一个文件。

在我的Gruntfile.js我有一个concat方法

concat: {
        libs: {
            src: [
                'js/vendor/jquery-1.10.2.js',
                'js/vendor/handlebars-1.1.2.js',
                'js/vendor/bootstrap.js',
                'js/vendor/ember-1.2.0.js',
                'js/vendor/ember-data.js',
                'js/vendor/ember-localstorage-adapter.js',
                'js/vendor/moment.js'
            ],
            dest: 'js/libs.js'
        },
        app: {
            src:'js/app/**/*.js',
            dest:'js/app.js'
        }
    }

我的文件结构:

js
 | --app
      | --controllers
      | --models
      | --routes
      | --views
      | --app.js
      | --store.js
      | --router.js
  | --vendor
      | ...libraries etc.

当grunt汇总我的javascript文件时,它会生成js/app.js

App = Ember.Application.create();

App.Router.map(function(){
    this.resource('bookmarks');
});

App.Store = DS.LSAdapter;

如何确保商店在路由器之前加载到js/app.js,或者它是否重要?

1 个答案:

答案 0 :(得分:3)

这些文件按照它们在concode规则的src部分中列出的顺序进行连接。订单在首先加载商店方面无关紧要,但这只是一个有根据的猜测,所以请大家多加一些建议。

如果您确实希望商店线路在路由器之前,您可以将连接修改为:

    app: {
        src:[
           'js/app/app.js',
           'js/app/store.js',
           'js/app/router.js'
        dest:'js/app.js'
    }

这样,app首先被附加,然后存储,然后是路由器。