接续上篇的基本设定 第七个应用:开发旅行社网站(1)、第七个应用:开发旅行社网站(2)、第七个应用:开发旅行社网站(3)
[第七个应用:开发旅行社网站(4)
现在要来说明版本控制的重要性
可以回溯文件,成为相当具有价值的历史知道code归属于谁,若有错误也能立刻找到负责的人可以用分支做实验性质的东西,若失败可以放弃,成功则能併入专案在这里我们将使用Git
,也是目前非常多人使用的版本控制系统
GIT
先确认自己是否有安装git了,若无则安装git
git --version
进入存放专案的资料夹建立Git储存库git init
创建.gitignore
让不想添加的项目被Git忽略node_modules//会忽略掉所有备份 例如 meadowlark.js~*~//如果是Mac则需要额外加入下行.DS_Store
添加修改到Git内逐项添加
git add meadowlark.js
但在这个专案内我们希望添加全部的修改
git add -A
git add
这个动作做的并不是添加文件 而是将修改(改变)添加上去
若刚刚修改了meadowlark.js
那git add meadowlark.js
就是将这份文件的修改添加到Git内
4. 刚刚那些add的改变都是存在Git的暂存空间,尚未提交,当準备就绪时可以用git commit
来提交
git commit -m "initial commit"
Git不允许没有描述的提交,因此每次的commit都应简单说明此次提交的内容
出现这个画面变代表上传成功
如果要使用官方的储存库则使用clone
指令
git clone https://github.com/EthanRBrown/web-development-with-node-and-express
再来能用checkout
筛选出标籤
git checkout ch04
git checkout -b <分支名称>
就能创立分支,在这上面随意编辑提交。
NPM
专案所需要使用的npm packages都放在node_modules的资料夹下
修改这个资料夹下的东西都非常容易被npm重新覆盖掉
因此若要修改资料,则应先创造副本
在package.json内则可以看到这个专案所有的dependencies
node_modules内的档案若删掉只要透过npm install
就能重新安装
因此在备份时常常忽略node_modules的资料
npm也自订模组,因此我们将上次写的fortuneCookies写成模块
(不储存在node_modules)
lib
资料夹在底下建立fortune.js
var fortuneCookies = [ "Conquer your fears or they will conquer you.", "Rivers need springs.", "Do not fear what you don't know.", "You will have a pleasant surprise.", "Whenever possible, keep it simple.",];exports.getFortune = function() { var idx = Math.floor(Math.random() * fortuneCookies.length); return fortuneCookies[idx];};
exports
可以让getFortune
这个函数在模组外也能使用
在模组外可以看到getFortune
但fortunes
的内容保持隐藏
3. 修改meadowlark.js
在顶部引入fortune.js模块
var fortune = require('./lib/fortune.js');
加上./是为了告诉node这个不在node_modules避免找不到
修改/about路径
res.render('about', { fortune: fortune.getFortune() } );
添加修改git add -A
commit这些改变git commit -m "Moved 'fortune cookie' functionality into module."