首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >livereload的配置Gruntfile.js

问livereload的配置Gruntfile.js
EN

Stack Overflow用户
提问于 2014-01-20 04:47:50
回答 1查看 1.5K关注 0票数 0

我使用Laravel作为我的后端框架,当一些文件发生修改时,我希望有实时的重新加载。我仍然没有成功地配置Gruntfile.js使其正常工作。

我想,我应该需要两个插件,grunt-contrib watch和grunt-contrib connect,我已经将Grutnfile.js配置如下。

代码语言:javascript
复制
module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        watch: {
            options: {
                livereload: true
            },
            page: {
                files: ['*.php', '*.html'],
                tasks: ['connect']
            }
        },

        connect: {
            options: {
                port: 8000,
                protocol: 'http',
                hostname: '*',
                livereload: true
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-connect');

    grunt.registerTask('do-server', ['watch']);
    grunt.registerTask('do-connect', ['connect']);
};

请帮我把事情做好,当事情做好了,我只需要以grunt的身份运行do-connect,然后grunt就会为我启动浏览器,或者我必须手动打开浏览器和浏览器到指定的端口?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-01-20 14:43:32

connect是一种静态文件服务器。它不解析和服务PHP文件;只服务静态文件。在为这些文件提供服务时,您可以添加中间件来转换这些文件,但如果使用PHP,则不太可能需要这些中间件。

您可能会使用nginx或apache作为您的服务器。PHPWeb5.4也有一个内置的>=服务器。因此,另一个选择是grunt-php而不是connect。

grunt-contrib connect和grunt-php都不会进行任何实时重新加载。实时重载都是通过grunt-contrib-watch处理的。配置livereload: true将在端口35729上启动一个在后台等待的服务器。

接下来,向您的<script src="//localhost:35729/livereload.js"></script>页面添加一个脚本标记: PHP。然后通过http://localhost:5000或您的站点所在的任何域/端口访问该页面。这将创建到实时重新加载服务器的web套接字。在更改文件时,监视任务将通知实时重新加载服务器,然后该服务器将通过web套接字通知您的浏览器。

如果您不想将脚本标记添加到页面,您可以安装浏览器扩展。有关更多信息,请参阅grunt-contrib watch任务文档:https://github.com/gruntjs/grunt-contrib-watch#enabling-live-reload-in-your-html

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21222452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档