我为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?
答案 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 %>'
}
}