我一整天都在尝试让这次的重播工作,但我很难过。我的grunt.js文件在下面,我确保在我的html文件末尾添加我的脚本。有什么想法吗?
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.initConfig({
uglify: {
my_target: {
files: {
'_/js/script.js' : ['_/components/js/script.js']
}//files
} //mytarget
}, //uglify
watch: {
options : { livereload: true },
scripts: {
files: ['_/components/js/*.js'],
tasks: ['uglify']
}, //scripts
html: {
files: ['*.html']
}//html
}//watch
}) // initconfig
grunt.registerTask('default', 'watch');
} //exports
答案 0 :(得分:3)
尝试使用浏览器extension进行livereload。
答案 1 :(得分:2)
我在gif动画中为你录制了一个小小的截屏视频。在那里,我展示了如何通过npm安装依赖模块,并在启用livereload的情况下构建项目。
截屏视频位于 http://imgur.com/3CpVI2j
我的工具版本是 NPM 1.4.21 和 NodeJS v0.10.30
这是我的 Gruntfile.js 及其评论
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// Delete contents before the full build
clean: {
dist: ['dist', 'dist/js'],
html: ['dist/**/*.html']
},
/* Uglify javascript located in app/js/*.js
And copy it to dist/js/main.js
So all JS will be in one file.
P.S. Remember that our js task in uglify is called "js" */
uglify: {
options: {
report: 'min'
},
js: { // task to combine separate files into main.js
files: {
'dist/js/main.js': [
'app/js/**/*.js'
]
}
}
},
copy: { // Just copy HTML files from app folder
html: {
files: [{
expand: true,
cwd: 'app/',
src: ['**/*.html'],
dest: 'dist/',
filter: 'isFile'
}]
},
},
connect: { // Create server that will serve
// requests to our compiled app
dist: {
options: {
port: 3000,
base: 'dist'
}
}
},
watch: { // Most instersting.
// Will be watching for changes in JS and HTML.
options: {
livereload: true
},
js: { // Here you need to specify the same task name
// as in uglify task we thought above
files: ['app/js/**/*.js'], // Which files to uglify and copy
tasks: ['newer:uglify'] // Do it
},
copy: { // Remove old html and copy new to dist folder
files: ['app/**/*.html'],
tasks: ['clean:html','newer:copy:html']
}
},
});
// Load all grunt modules with one command
require('load-grunt-tasks')(grunt);
grunt.registerTask('build', [
'clean:dist', // Remove all
'uglify', // Uglify all
'copy' // Copy all HTML
]);
grunt.registerTask('default', [
'build', // Build the project
'connect:dist', // Start server
'watch' // Watch for changes
]);
};
这是 package.json ,没有评论 (一切都很清楚)
{
"engines": {
"node": ">= 0.10.0"
},
"devDependencies": {
"grunt": "~0.4.5",
"grunt-contrib-clean": "0.5.0",
"grunt-contrib-connect": "~0.8.0",
"grunt-contrib-copy": "~0.5.0",
"grunt-contrib-uglify": "~0.5.0",
"grunt-contrib-watch": "~0.6.1",
"grunt-newer": "~0.7.0",
"load-grunt-tasks": "~0.6.0"
},
"scripts": {
"preinstall": "npm cache clear"
}
}
答案 2 :(得分:1)
有一些选项可以让实时重新加载:
<script src="//localhost:35729/livereload.js"></script>
详细说明:
https://github.com/gruntjs/grunt-contrib-watch#live-reloading
答案 3 :(得分:0)
您不必添加任何浏览器扩展程序或额外的脚本代码here is a Gulp based solution,另请参阅https://stackoverflow.com/a/29729776/1614973 以获取Gulpfile的示例。