1.版本控制
- SVN
- GIT
推荐使用git,git安装和图形化界面tortoiseGit安装,git与github联系不在本文的讨论范围,请自行搜索。
在github中新建一个项目
在本地使用图形Git–>git clone
或者使用命令:1
git clone git://github.com/someone/some_project.git
文件夹就是我们的项目文件夹。
2.前端自动化
2.1 gulp
Gulp通过流和代码优于配置策略来尽量简化任务编写的工作。当使用流时,Gulp去除了中间文件,只将最后的输出写入磁盘,整个过程因此变得更快。
2.1.1 安装命令行工具
1 | npm install -g gulp |
2.1.2 创建好package.json文件(包管理文件),安装局部gulp
1 | npm install --save-dev gulp |
下载的包会存放在项目的node_modules文件夹下
包依赖会加入到package.json中:1
2
3"devDependencies": {
"gulp": "^3.9.1"
}
2.1.3 新建gulpfile.js文件
四个主要API
- gulp.task(name[, deps], fn):注册任务
- gulp.src(globs[, options]):指明源文件路径
- gulp.dest(path):指明任务处理后的目标输出路径
- gulp.watch(glob[, options], tasks)/gulp.watch(glob[, options, cb]):监视文件的变化并运行相应的任务。
实例见3.2 在gulpfile.js中配置。
2.1.4 运行
1 | gulp |
2.2 grunt
2.2.1 安装 grunt-cli
1 | npm install grunt-cli -g |
2.2.2 配置grunt
在项目中添加两份文件:package.json 和 Gruntfile。
- package.json //项目自动化所依赖的相关插件。
- Gruntfile.js //项目自动化工作流配置文件。
安装Grunt 和 grunt插件
1 | npm install grunt --save-dev |
配置Gruntfile.js文件
1 |
|
2.2.3 运行
1 | grunt |
3.SASS
‘CSS预处理器’,它的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件。
3.1 安装
1 | npm install --save-dev gulp-sass |
gulp-sass是用来将SASS转化为CSS的,gulp-watch是用来观察文件修改的变化
我们来看package.json文件的变化1
2
3
4
5"devDependencies": {
"gulp":"^3.9.1",
"gulp-sass":"^2.3.1",
"gulp-watch":"^4.3.6",
}
3.2 在gulpfile.js 中配置
1 | ; |
3.3 命令执行
1 | gulp sass:watch |
执行上诉命令,在sass文件修改、保存后,gulp就会将sass文件转化为css文件
4.模块化编程
具体参见文章【javascript模块化编程】
4.1 ES5时代
以seajs为例:
CMD(Custom Module Definition)通用模块加载
4.1.1 seajs
引入seajs文件1
<script type="text/javascript" src="../../common/jsext/sea-debug.js"></script>
seajs 的简单配置1
2
3
4
5
6
7
8seajs.config({
base: "../sea-modules/",
alias: {
"jquery": "jquery/jquery/1.10.1/jquery.js"
}
})
// 加载入口模块
seajs.use("../static/hello/src/main");//入口
定义模块:1
2
3
4
5
6
7
8
9
10
11
12
13
14// 所有模块都通过 define 来定义
define(function(require, exports, module) {
// 通过 require 引入依赖
var $ = require('jquery');
var Spinning = require('./spinning');
// 通过 exports 对外提供接口
exports.doSomething = ...
// 或者通过 module.exports 提供整个接口
module.exports = ...
});
4.2 ES6时代
1 | //bar.js |
1 | //foo.js |
1 | //baz.js |
当然现在需要使用babel转成es5,并且要使用打包工具browserify webpack rollup 等才能直接在现在的浏览器上运行。
5.组件化
组件化的思路是将一个模块独立开来,比如要写一个选择器按钮,将其分为三层:
数据层:用来决定按钮个数以及按钮是否选择
表现层:按钮使用现有的ui组件
逻辑层:按钮事件等逻辑处理
参考阅读:
- Git 常用命令详解
- SASS用法指南-阮一峰
- SASS入门
- [阮一峰-es6入门](http://es6.ruanyifeng.com/)