模块系统
模块分类
- 核心模块
- 第三方模块
- art-template
- npm下载的模块
- 自己写的模块
require加载机制和规则
- 无论加载什么模块,优先从缓存中加载
- 第一次我要加载a,a又依赖b,那么我会将a和b都加载过来。
- 第二次我要加载b,我就不需要重新加载b,因为a依赖b,所以缓存中有b,这样我就直接读缓存
- 核心模块直接加载
- 路径形式的文件模块,按路径加载
- 第三方模块(以art-template为例)
- 如果a模块引入b,b模块有引入a的话,就说明本身设计就有问题
npm
node package manager
npm命令
npm -v 查看版本 npm install –global npm 更新npm npm init 初始化项目要的包,在目录中生成node_modules和package.json npm init -y 跳过向导,快速生成package.json npm install 包名 安装包 npm install –save 包名 下载并保存依赖项到package.json中 npm i -S 包名 (简写) npm uninstall 包名 依赖项会保存,不会被删掉 npm uninstall –save 包名 删依赖项 npm un -S 包名 (简写) npm –help 查看帮助 npm 操作 –help 查看具体操作的帮助 npm config list 查看配置信息 不想安装cnpm又想用淘宝服务器来下载
1
npm install jquery --registry=https://registry.npm.taobao.org
但每次这么加参数很麻烦,可以这样
1
npm config set registry https://registry.npm.taobao.org
package.json
建议每个项目都要有一个package.json文件(对项目的说明)
package.json可以通过npm init初始化出来
根据init向导填写项目信息
如果项目中的node_modules没了也不用担心,
npm install 会根据package.json把所有的依赖项都下回来
Express初探
原生的http在某些方面表现不足以应对我们的开发需求
1
2
3
4
5
6
7
8
9
10
11
12var express = require('express')
var app = express()
app.use('/public/', express.static('./public/'))
app.get('/about', function (req, res) {
res.send('hello express')
})
app.listen(3000, function () {
console.log('running')
})
之后我真正独立地用express重写了留言板demo,见下一篇