使用Ember-CLI进行Livereload;仅重新加载已更改的资产

时间:2014-11-21 22:27:13

标签: ember.js ember-cli livereload broccolijs gulp-livereload

我习惯用Grunt或Gulp构建资产编译系统。使用Gulp的livereload和Chrome livereload插件,我有一个非常好的系统,它监视某些文件类型的更改并仅重新加载已更改的文件。使用ember-cli,当我更改CSS文件时,它只是重新加载整个页面,而不仅仅是重新加载CSS文件。当我试图设计一个深度嵌套的过程时,这会很痛苦。关于如何正确使用Ember CLI的任何想法/想法?

2 个答案:

答案 0 :(得分:2)

我相信这仍然是Ember CLI正在进行的工作,并计划在未来发布,或者取决于Broccoli的修复程序。见https://github.com/stefanpenner/ember-cli/issues/2371

我为解决这个问题所做的事情可能并不理想,但我最终使用grunt,并使用shell命令运行ember build,将输出复制到正在服务的其他目录中另一台服务器(在我的案例中是IIS express),然后只需手动查看我的文件。

以下是我的grunt文件中的代码段。我相信你可以用Gulp完成同样的工作。

    shell: {
        prod: {
            command: 'ember build --environment production'
        },

        dev: {
            command: 'ember build'
        }
    },
    copy: {
        dev: {
            files: [{
                src: '**',
                dest: '../Server/Content/js',
                cwd: 'dist/content/js',
                expand: true
            }, {
                src: '**',
                dest: '../Server/content/css',
                cwd: 'dist/content/css',
                expand: true
            }, {
                src: 'dist/index.html',
                dest: '../Server/Views/Home/Root.cshtml'

            }]
        }
    },

    watch: {
        dev: {
            files: [
                'app/**/*.js', 'app/**/*.hbs'
            ],
            tasks: ['_buildDev'],
            options: {
                livereload: true
            }
        },

        less: {
            files: [
                'app/**/*.less'
            ],
            tasks: ['shell:dev', 'copy:dev']
        },

        css: {
            files: [
                '../Server/Content/css/**/*'
            ],
            options: {
                livereload: true
            }
        }
    }

答案 1 :(得分:1)

官方支持正在进行中,同时尝试使用此ember-addon https://www.npmjs.com/package/ember-cli-styles-reloader