Closed atian25 closed 7 years ago
angular
file:///
grunt
livereload
再具体点:
grunt-contrib-connect
connect-livereload
grunt-contrib-watch
nodejs
gruntjs
npm install -g grunt-cli
npm init
npm install --save-dev grunt matchdep grunt-contrib-connect grunt-contrib-watch connect-livereload grunt-open
src:'src/app/'
/** * 自动化脚本定义 */ module.exports = function (grunt) { 'use strict'; //load all grunt tasks require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); //define tasks grunt.registerTask('server', ['connect:server', 'open:server', 'watch:server']); //env cfg var pkg = grunt.file.readJSON('package.json'); var cfg = { src: 'src/app/', // Change 'localhost' to '0.0.0.0' to access the server from outside. serverHost: '0.0.0.0', serverPort: 9000, livereload: 35729 }; //grunt config grunt.initConfig({ //======== 配置相关 ======== pkg: pkg, cfg: cfg, //======== 开发相关 ======== //开启服务 connect: { options: { port: cfg.serverPort, hostname: cfg.serverHost, middleware: function(connect, options) { return [ require('connect-livereload')({ port: cfg.livereload }), // Serve static files. connect.static(options.base), // Make empty directories browsable. // connect.directory(options.base), ]; } }, server: { options: { // keepalive: true, base: cfg.src, } } }, //打开浏览器 open: { server: { url: 'http://localhost:' + cfg.serverPort } }, //监控文件变化 watch: { options: { livereload: cfg.livereload, }, server: { files: [cfg.src + '/**'], // tasks: [''], }, } }); };
grunt server
browserSync
archived
要解决什么问题?
angular
的时候,官方的chrome插件对file:///
的支持不好,所以最好在web浏览器里面。主要思路
grunt
来做脚本livereload
来通知文件变更(不需要chrome livereload插件)再具体点:
grunt-contrib-connect
负责启动web服务connect-livereload
负责给middleware,动态在html底部加一条livereload的jsgrunt-contrib-watch
监控文件变化并通知具体步骤
安装依赖
nodejs
: http://nodejs.orggruntjs
(http://gruntjs.com/) :npm install -g grunt-cli
npm init
,一路回车。npm install --save-dev grunt matchdep grunt-contrib-connect grunt-contrib-watch connect-livereload grunt-open
在根目录放置Gruntfile.js
src:'src/app/'
为你的源码目录开始开发吧~
grunt server