如何更改yeoman配置以正确运行livereload

时间:2015-05-06 16:18:29

标签: gruntjs yeoman yeoman-generator grunt-contrib-watch

我为Yeoman生成的AngularJs应用程序配置Gruntfile.js。我已将协议更改为https。所以它现在提供https://localhost:9000上的所有文件。

... 
connect: {
   options: {
      port: 9000,
      protocol: 'https',
      hostname: 'localhost',
      livereload: 35729,
      ...

所以它现在提供https://localhost:9000/上的所有文件。我还添加了证书& livereload config的关键:

  livereload: {
       options: {
             key: grunt.file.read('livereload.key'),
             cert: grunt.file.read('livereload.crt'),

但它还没有从https://localhost:35729/livereload.js?snipver=1 Failed to load resource: net::ERR_CONNECTION_CLOSED加载livereload.js我可以在浏览器中打开http连接并加载livereload.js http://localhost:35729/livereload.js?snipver=1

我应该更改哪些内容以在https上提供livereload.js?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。最后我想出了如何在Angular-generator中进行设置。

在grunt.initConfig.connect.options下,使用以下设置替换“livereload:35729”:

livereload: {
                port: 35729,
                key: grunt.file.read('livereload.key').toString(),
                cert: grunt.file.read('livereload.crt').toString(),
            },

由于Gruntfile正在使用手表的设置参考,我们可以从原始位置进行设置。

在此设置之后,我还在我的html文件中添加了<script src="https://localhost:35729/livereload.js"></script>并使用htmlprocess将其从发布版本中删除。

希望它有所帮助。

干杯,

答案 1 :(得分:0)

首先:(在connect.options对象内)

livereload: true || port(default is 35729)  <-- this inject the html snipet in index

更改后:(在监视对象内)

js : {
   files  : ['<%= yeoman.app %>/scripts/{,*/}*.js'],
   tasks  : ['newer:jshint:all', 'newer:jscs:all'],
   options: {
      livereload: {
          port: 35729,
          key : grunt.file.read('./certs/server.key').toString(),
          cert: grunt.file.read('./certs/server.crt').toString(),
      }
   }
}

和此:

livereload: {
    options: {
        livereload: {
            port: 35729,
            key : grunt.file.read('./certs/server.key').toString(),
            cert: grunt.file.read('./certs/server.crt').toString(),
         }
     },
     files  : [
         '<%= yeoman.app %>/{,*/}*.html',
         '.tmp/styles/{,*/}*.css',
         '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
     ]
}

或者您可以定义配置对象:

lr: {
        port: 35729,
        key : grunt.file.read('./certs/server.key').toString(),
        cert: grunt.file.read('./certs/server.crt').toString(),
    },

并像这样使用:

js : {
    files  : ['<%= yeoman.app %>/scripts/{,*/}*.js'],
    tasks  : ['newer:jshint:all', 'newer:jscs:all'],
    options: {
       livereload: '<%= lr %>'
    }
}